使用jquery将事件绑定到文本输入。 该事件只是执行ajax调用。
问题是我的代码在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中的元素,因为当调用$(document).ready时,可能没有在IE中完全加载Dojo ....
任何想法?
非常感谢
答案 0 :(得分:1)
在您点击外部并导致模糊发生之前,某些浏览器中不会触发change
事件。
如果你想点击每一个按键,我会使用.keyup()
代替.change()
。 但是这种情况可能会经常发生,无法一直运行AJAX,所以你可能想在那里添加一个计时器。有关如何执行此操作的示例,请参阅this answer。