2010-08-14 49 views
0

正在使用jquery將事件綁定到文本輸入。 該事件只是執行ajax調用。在IE6中未觸發jQuery更改事件

問題是我的代碼在Firefox中正常工作,但事件從未在IE6中觸發。 繼承人我的代碼:

</script type="text/javascript" src="/js/jquery/jquery.js"></script> 
<script type="text/javascript"> 

     // Turn off caching for Ajax 
     $.ajaxSetup({ 

       cache: false 

     }); 

     var ajaxCallURL = "http://<?php echo $_SERVER['HTTP_HOST']; ?>/check"; 

$(document).ready(function() { 

     $("#test").change(function() { 

       alert("Event fired"); 

       $('#result').load(ajaxCallURL,null, function(responseText) { 

         alert("Ajax call successful"); 

       }); 

     }); 
}); 


</script> 
<input style="WIDTH: 30em" id="test" name="test" value="" type="text"/> 
<div id="result"></div> 

在文本框中鍵入後,兩個警報顯示在Firefox,但沒有在IE6。

我也應該說這個元素是使用Zend_Dojo類創建的,但是我不能看到使用Dojo和jQuery的問題,因爲它在Firefox中工作正常。

在想它必須是該事件永遠不會綁定到IE中的元素,由於可能道場沒有完全在IE加載時的$(document)。就緒被稱爲....

任何想法,任何人??

非常感謝

回答

1

change事件,直到您單擊之外,並導致模糊的發生是不是在這裏打響了一些瀏覽器。

如果您想在每個按鍵上觸發,我會使用.keyup()而不是.change()但是這可能會觸發得太頻繁以至於始終運行AJAX調用,因此您可能需要在其中添加計時器。有關如何執行此操作的示例,請參閱this answer

+0

感謝您的回覆。 我遇到了拖網的網站,並通過在文本框中輸入然後點擊頁面上的另一個文本框來測試我的代碼,但仍然沒有發生任何事件。 我也試過.click,看看這個問題是否僅僅是改變,但它與.click – Stee 2010-08-14 13:11:17

+0

@Stee相同的問題 - 你是否在IE6中獲得任何其他JavaScript錯誤?這聽起來好像根本沒有被執行。 – 2010-08-14 13:17:44

+0

沒有其他錯誤 - 已經在Firefox中運行這個與Firebug和所有確定.. 看起來像它的IE瀏覽器執行dojo的方式....因爲我只使用了 dojo.addonload()函數,幷包括上面的jQuery代碼在它和它現在在IE中工作... 所以看起來像IE和Firefox加載Dojo以不同的方式,因爲在IE中我不認爲Dojo完全加載時,jQuery $(doc).ready函數被調用,而在Firefox中它是... – Stee 2010-08-14 13:26:12