jQuery onclick передает переменные сообщения и страницу перезагрузки

Я могу передать переменные сообщения и перезагрузить страницу при нажатии на гиперссылку?

Чтобы быть ясным, у меня есть что-то вроде этого. <a href="test.php?name=test">Click</a>

Если JavaScript включен,

Я думаю, что могу использовать "event.preventDefault ()" для подавления передачи, как СТАНОВЯТСЯ переменными.

Таким образом, теперь onclick, имя должно быть передано как переменная сообщения вместо, добираются.

Если JavaScript отключен, То вышеупомянутое должно работать.

7
задан Crescent Fresh 21 February 2010 в 14:52
поделиться

3 ответа

Вы можете сделать это, создав новый элемент form , указав его на href и вызвав для него .submit () .

<a class="postlink" href="test.php?name=test">Click</a>

<script type="text/javascript">
    $('.postlink').click(function() {
        var form= document.createElement('form');
        form.method= 'post';
        form.action= this.protocol+'//'+this.hostname+this.pathname;
        $.each(this.search.slice(1).split(/[&;]/g), function() {
            var ix= this.indexOf('=');
            if (ix===-1) return;
            var input= document.createElement('input');
            input.type= 'hidden';
            input.name= decodeURIComponent(this.slice(0, ix));
            input.value= decodeURIComponent(this.slice(ix+1));
            form.appendChild(input);
        });
        document.body.appendChild(form);
        form.submit();
        return false;
    });
</script>

Или вы можете просто выполнить запрос AJAX и после этого reload () страницу, если хотите.

Однако я не уверен, зачем вам это нужно. Какая польза от ссылки, которая обычно публикуется, кроме случаев, когда это не так? (Не только когда JS отключен / недоступен или когда это поисковая система, но и когда пользователь щелкает средней кнопкой мыши по ссылке или пытается щелкнуть правой кнопкой мыши, добавить закладку или что-то еще.)

Если все, что вам нужно, это что-то, что ведет себя как кнопка для отправки формы POST, лучше использовать настоящую форму и кнопку отправки, а затем использовать CSS, чтобы изменить ее стиль, чтобы он выглядел как ссылка, если вы хотите, чтобы она выглядела так.

11
ответ дан 6 December 2019 в 19:36
поделиться

У меня на странице около 10 ссылок. Когда пользователь нажимает на эти ссылки, должна выполняться ajax-reload.

Для ясности у меня есть что-то вроде этого.

<a href="test.php?name=one">one</a>
<a href="test.php?name=Two">Two</a>

Если включен javascript,

Onclick должна выполняться загрузка ajax.

Если javascript отключен, то все должно работать.

Обычно я использую имя , чтобы ограничить некоторые значения моей страницы поиска.

0
ответ дан 6 December 2019 в 19:36
поделиться

Очень хороший совет ....

Сначала я пытался отправить данные формы с помощью вызова Ajax Post и затем перезагружал страницу, но это не работало должным образом:

var  biq_select_val = jQuery('#biq_search_select').val();
jQuery.post(window.location.href,
        { biq_amazon_item_list_search: biq_select_val},
        function() {window.location.reload();}
    );

Теперь я использую только:

jQuery('#biq_amazon_item_list_search_form').submit();

, и он работает нормально.

2
ответ дан 6 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: