windows.location.href меняет результаты в POST, ожидая GET - PullRequest
2 голосов
/ 08 марта 2012

Следующий метод вызывается из события onclick двух разных кнопок:

this.changeSearch = function(obj, $tag) {
    var url = jQuery('#admin_url').val() + '/tools.php?page=cemeteriat&cempage=' + $tag;
    window.location=url;
    return;
};

В одном случае, независимо от того, заполнена форма или нет, нажатие кнопки приводит к ожидаемому вызову GET. С другой стороны, если форма заполнена, а не GET для ожидаемого URL, выполняется POST для URL, назначенного в атрибуте действия формы. что за ...

Я проследил код, и оба раза указанному выше URL присваивается одно и то же значение! Я попытался использовать document.location, window.location и window, location.href без изменений в поведении. не похоже на браузер.

Что может привести к тому, что присвоение windows.location приведет к появлению POST формы вместо ожидаемого GET?

1 Ответ

3 голосов
/ 08 марта 2012

Это потому, что одна из ваших кнопок является кнопкой отправки формы, поэтому она отправляется и никогда не попадает в код, который вы показываете.

Вам следует подключиться к событию отправки формы и вызвать event.preventDefault(); Вы не можете предотвратить отправку формы из обработчика щелчка для кнопки отправки.

В качестве альтернативы, вы можете сделать кнопку не типом submit.

Другой вариант - обработать событие отправки и изменить форму из обработчика отправки, указав правильный URL-адрес и метод отправки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...