Jquery .change не работает в Chrome - PullRequest
       31

Jquery .change не работает в Chrome

2 голосов
/ 19 августа 2011

По какой-то причине это работает нормально в FF, но не в Chrome.Я попытался обернуть в $ (окно) .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/

Любая помощь очень ценится!

Ответы [ 3 ]

3 голосов
/ 19 августа 2011

У вас есть обработчик 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).готов ().

0 голосов
/ 19 августа 2011

розелан прав, вам не нужно $(window).load() внутри вашего $(document).ready()

В консоли Chrome я отключил обработчик ключей, и он работал. Вы можете просто переместить код toUpperCase () в обработчик изменений.

Этот jsfiddle еще больше упрощает вашу проблему: http://jsfiddle.net/G3CMH/ Когда вы меняете значение поля в событии keyup, событие change не срабатывает при размытии.

0 голосов
/ 19 августа 2011

уберите $(window).load( function() { вокруг вашей функции, которая может только повредить вещи.

есть много "$ (function () {...", это может быть причиной, но я сомневаюсь в этом.

Дело в том, что скрипт работает ... иногда. чаще при удалении значения.

На самом деле. есть обработчик изменения состояния 2, ищите:

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

и в этом проблема и выполнение, и результат случайный. удали этот ворчливый малыш и наслаждайся;)

...