Google Chrome не запускает событие размытия на переключателях? - PullRequest
7 голосов
/ 21 апреля 2011

Это мой первый пост здесь - Привет всем

В настоящее время я разрабатываю HTML-форму с поддержкой CSS и JQuery. Форма будет использоваться «неопытными пользователями», поэтому я сфокусирован на удобстве использования. Поэтому я даю подсказку для каждого поля ввода с дальнейшими инструкциями. Чтобы показать подсказки, я использую событие javascript onfocus / onblur, поэтому отображается только одна подсказка за раз. Это работало хорошо, когда у меня были только поля ввода type="text", но с полями ввода type="radio" У меня проблемы с Google Chrome.

Я сделал быстрый пример на jsfiddle.net , чтобы вы могли понять, что я имею в виду. Код там очень похож на код, который я использую в своей форме, поэтому я не стал размещать его здесь. Это предупреждение появляется во всех браузерах, которые я тестировал, за исключением Google Chrome. Интересно, почему? Есть какое-нибудь известное решение или обходной путь?

Ответы [ 3 ]

4 голосов
/ 21 апреля 2011

С quirksmode :

Safari и Chrome не запускают события фокусировки / размытия, когда пользователь использует мышь для доступа к флажкам, радио или кнопкам.Текстовые поля, текстовые поля и поля выбора работают правильно.

Есть несколько предложений, чтобы обойти это здесь .

4 голосов
/ 21 апреля 2011

Рабочий образец :

$('input').on({
    click: function (e) {
        this.focus();
        $('#' + this.id + 'msg').show();
    },
    blur: function (e) {
        $('#' + this.id + 'msg').hide();
    }
});
2 голосов
/ 21 апреля 2011

blur будет работать на определенных версиях Chrome (но не на моей версии 10.0.648.205), но только если вы отойдете от всей коллекции элементов.Не уверен, что это полезно, но это будет работать:

$('input:radio').click(function() {
    alert('why does this not show up in google chrome?!');
});

HTH.

...