2

出于某种原因,这似乎在 FF 中运行良好,但在 Chrome 中却不行。我试过包装 $(window).load(function() {...}); 甚至删除页面上的所有其他 Javascript(除了 Jquery Form Wizard 插件。

 $('#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/查看

任何帮助深表感谢!

4

3 回答 3

3

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

$('#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() 中。

于 2011-08-19T17:45:44.490 回答
0

删除$(window).load( function() {您的功能周围,这只会损坏东西。

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

关键是,脚本工作......有时。删除值时更频繁。

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

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

这就是两者都执行的问题,结果是随机的。删除那个唠叨的小家伙,然后享受;)

于 2011-08-19T17:05:47.563 回答
0

罗斯兰是对的,你不需要你的$(window).load()内心$(document).ready()

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

这个 jsfiddle 进一步简化了您的问题:http: //jsfiddle.net/G3CMH/ 当您更改 keyup 事件中的字段值时,更改事件不会在模糊时触发。

于 2011-08-19T17:34:54.570 回答