2008-10-07 68 views
4

我在我的文件下面的代码从一个AJAX调用加载具有HTML一个div:IE jQuery的阿贾克斯后7转向呼吁

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

这工作正常,在Firefox和谷歌Chrome,但每当我做在IE中搜索我被重定向回index.php。我从Firebug中获取URL并将其粘贴到IE中,并且不发生重定向,我只是得到应该返回的输出。

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

回答

1

更有趣。我的输入文字和按钮都是用这种形式包装的:

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

和IE似乎忽略了返回false。我试图将jQuery函数修改为像Steve的函数,但它仍然不适当地刷新。

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

+0

至少在XHTML是小写`onsubmit`。除此之外,最好通过JavaScript来完成 - 请参阅史蒂夫的回答。 除此之外,删除表单标签导致无效的HTML。这是一件坏事。 – ThiefMaster 2010-11-22 13:35:17

2

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

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

设置表单的action属性的JavaScript函数(如搜索处理函数)或“返回false”

MSIE在激发表单动作,当你按下回车键

+0

ummm .... action =“javascript:foo();” – Sugendran 2008-10-07 22:18:11

0

你的函数应该返回false以防止按钮的提交操作。不过,我不知道jQuery如何处理它。

0

你应该防止默认像后续的方式..

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

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