Почему мои события jQuery checkbox.change срабатывают только при оставлении фокуса в IE, но они происходят по щелчку в FF? - PullRequest
7 голосов
/ 01 октября 2009
    $(".feature").change(function(){
        getProductSelections();
    });

ARRRGHH !!

Ответы [ 2 ]

7 голосов
/ 01 октября 2009

Отслеживание веб-ошибок:

Событие onchange может быть присоединено (встроено или как обработчик события) к любому элементу формы. Он срабатывает каждый раз, когда изменяется значение поля формы. К сожалению, поведение немного странно в IE, в том, что для флажка или поля переключателя событие не срабатывает, когда оно должно (прямо при нажатии на параметр, который вы хотите выбрать), а вместо этого оно только срабатывает, когда вы щелкаете в другом месте страницы / формы, или если вы явно вызываете blur (); на поле.

И предложенный обходной путь:

<input type="radio" name="foo" value="Green" onclick="alert(this.value);"/>Green
<input type="radio" name="foo" value="Blue" onclick="alert(this.value);"/>Blue
1 голос
/ 04 февраля 2010

Проблема с решением Лукаса заключается в том, что это сработает, даже если вы снова нажмете ту же опцию.

Решением, которое я нашел для работы, было добавление onclick = "this.blur ();" тегу переключателя, который заставляет его активировать обмен, только если он изменился.

<input type="radio" name="foo" value="Green" onclick="alert(this.value);" onclick="this.onBlur();" />Green
<input type="radio" name="foo" value="Red" onclick="alert(this.value);" onclick="this.onBlur();" />Red

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...