Перенаправление IE 7 после вызовов jQuery ajax

В моем файле есть следующий код для загрузки div с HTML из вызова AJAX:

$('#searchButton').click( function() {
    $('#inquiry').load('/search.php?pid=' + $('#searchValue').val());
});

Это отлично работает в Firefox и Google Chrome, но всякий раз, когда я выполняю поиск в IE, меня перенаправляют обратно на index.php. Я взял URL-адрес из Firebug и вставил его в IE, и перенаправления не произошло, я просто получил результат, который должен быть возвращен.

Я также попытался изменить его на запрос $ .get () и полный запрос $ .ajax (), но с тем же перенаправлением.

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
4
0
2 556
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

IE по-разному обрабатывает события по умолчанию (также будьте осторожны при нажатии ввода в текстовое поле). IE вызывает срабатывание обработчика событий по умолчанию. Если searchButton - это ссылка с HREF, равным "", она перезагрузит текущую страницу. Вы можете попробовать установить для href значение «javascript: void (0)» или сделать что-то вроде:

$('#searchButton').click( function(e) {
    $('#inquiry').load('/search.php?pid=' + $('#searchValue').val());
    e.preventDefault();
});
Ответ принят как подходящий

Веселее. У меня есть вводимый текст и кнопка, обернутая в эту форму:

<form onSubmit = "return false;">
[HTML]
</form>

и IE, похоже, игнорирует return false. Я попытался изменить функцию jQuery так, чтобы она была похожа на функцию Стива, но она все еще обновлялась некорректно.

Я удалил теги формы, и это позаботилось об этом.

По крайней мере, в XHTML это строчная onsubmit. Кроме того, лучше делать это через javascript - см. Ответ Стива. Кроме того, удаление тегов формы приводит к недопустимому HTML. Это плохо.

ThiefMaster 22.11.2010 16:35

установите для атрибута действия формы функцию javascript (например, функцию обработки поиска) или "return false"

MSIE запускает действие формы, когда вы нажимаете Enter

Ваша функция должна возвращать false, чтобы предотвратить действие кнопки отправки. Но я не знаю, как с этим справляется jQuery.

Вы должны предотвратить дефолт, как следующий.

var searchbutton = $('#searchButton');
var inquirysearchvalue = $('#inquiry').load('/search.php?pid=' + $('#searchValue');

searchbutton.click( function(e) {
    inquirysearchvalue.val());
    e.preventDefault();
});

Другие вопросы по теме