IE 7在jQuery ajax调用后重定向

时间:2008-10-07 15:08:57

标签: jquery ajax internet-explorer-7

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

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

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

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

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

和IE似乎忽略了返回false。我尝试将jQuery函数修改为像Steve一样,但它仍然正在刷新。

我删除了表单标记并负责处理。

答案 2 :(得分:0)

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

当您点击

时,MSIE正在触发表单操作

答案 3 :(得分:0)

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

答案 4 :(得分:0)

你应该像跟随方式一样防止违约..

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

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