在IE6中没有触发jQuery更改事件

时间:2010-08-14 12:38:46

标签: jquery

使用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 ....

任何想法?

非常感谢

1 个答案:

答案 0 :(得分:1)

在您点击外部并导致模糊发生之前,某些浏览器中不会触发change事件。

如果你想点击每一个按键,我会使用.keyup()代替.change()但是这种情况可能会经常发生,无法一直运行AJAX,所以你可能想在那里添加一个计时器。有关如何执行此操作的示例,请参阅this answer