2008-10-07 43 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(); 
});