Jquery .change在Chrome中不起作用

时间:2011-08-19 06:36:11

标签: jquery formwizard

形成一些原因,这似乎在FF中正常工作,但在Chrome中却没有。我试过包装$(window).load(function(){...});甚至删除页面上的所有其他Javascript(除了Jquery表单向导插件。

 $('#state').change(function() {
            var state = $("#state").val();
            if (state === "CA" || state === "NV" || state === "OR" || state === "WA" || state === "AZ") {
                $("#first .ins_link_next").val("insurance_type");
                }
                else {
                $("#first .ins_link_next").val("out-of-area");

                }
    });

可以在http://173.45.237.55/qrf/

查看该页面

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

input元素中有一个onKeyup处理程序,它将输入值设置为大写。这实际上分离了事件处理程序(在Chrome中)。要解决这个问题,一个解决方案是将onKeyup函数移动到更改函数中:

$('#statecode').change(function() {
        this.value=this.value.toUpperCase();
        var state = $("#statecode").val();
        if (state === "CA" || state === "NV" || state === "OR" || state === "WA" || state === "AZ") {
            $("#first .ins_link_next").val("insurance_type");
            }
            else {
            $("#first .ins_link_next").val("out-of-area");

            }
});

另外,你不需要$(window).load()来将你的函数包装在$(document).ready()中。

答案 1 :(得分:0)

删除你的功能周围的$(window).load( function() {,这只会损坏内容。

有很多“$(function(){...”,它可能是一个原因,但我对此表示怀疑。

重点是,脚本有效......有时候。删除值时更常见。

实际上。有2个#state更改处理程序,请查找:

$(function() {
    $('#state').change(function() {
            $("#ins_type").val($('#ins_type')[0].defaultValue);
    });
});

这就是执行问题,结果是随机的。删除那个唠叨小的人,享受;)

答案 2 :(得分:0)

roselan是对的,你$(window).load()

中不需要$(document).ready()

在Chrome控制台中,我禁用了键盘处理程序并且它有效。您可能只想将toUpperCase()代码移动到更改处理程序中。

这个jsfiddle进一步解决了你的问题:http://jsfiddle.net/G3CMH/当你更改keyup事件中的字段值时,更改事件不会因模糊而被触发。