4

我的文件中有以下代码,用于从 AJAX 调用加载带有 HTML 的 div:

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

这在 Firefox 和 Google Chrome 中运行良好,但每当我在 IE 中进行搜索时,我都会被重定向回 index.php。我从 Firebug 中获取了 URL 并将其粘贴到 IE 中,并且没有发生重定向,我只是得到了应该返回的输出。

我还尝试将其更改为 $.get() 请求和完整的 $.ajax() 请求,但仍然是相同的重定向。

4

5 回答 5

2

IE 以不同的方式处理默认事件(还要注意在文本字段中按回车键)。IE 导致某些默认事件处理程序触发。如果 searchButton 是 HREF 为 "" 的链接,它将重新加载当前页面。您可以尝试将 href 设置为“javascript:void(0)”或执行以下操作:

$('#searchButton').click( function(e) {
    $('#inquiry').load('/search.php?pid=' + $('#searchValue').val());
    e.preventDefault();
});
于 2008-10-07T15:12:33.460 回答
1

更多乐趣。我有以这种形式包装的输入文本和按钮:

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

而 IE 似乎忽略了返回错误。我尝试将 jQuery 函数修改为像史蒂夫的那样,但它仍然不正确地刷新。

我删除了表单标签并处理了它。

于 2008-10-07T15:28:28.513 回答
0

将表单的 action 属性设置为 javascript 函数(例如您的搜索处理函数)或“return false”

当您按 Enter 键时,MSIE 正在触发表单操作

于 2008-10-07T22:17:31.747 回答
0

您的函数应返回 false 以阻止按钮的提交操作。不过,我不知道 jQuery 是如何处理的。

于 2008-10-07T22:37:04.763 回答
0

您应该像以下方式一样防止默认值..

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

searchbutton.click( function(e) {
    inquirysearchvalue.val());
    e.preventDefault();
});
于 2014-05-29T08:56:57.523 回答