jQuery: только IE, input: флажок возвращает 0, даже если элементы выбраны - PullRequest
8 голосов
/ 02 февраля 2010

Я вижу ошибку, которую не могу воспроизвести из небольшого подмножества пользователей.Вот код:

var selected = $('#mytable input:checked');
if (selected.length == 0) {
    $('body').trigger('notice', 'Please select some items first');
    return;
}

Даже когда пользователь устанавливает несколько флажков, срабатывает «уведомление».Кажется, выбрано. Длина равна нулю, когда это не должно быть.


[ОБНОВЛЕНИЕ] Селектор работает, когда он обновлен до:

var selected = $('input[class="selection"]:checked');

Кажется, что включение идентификатора в селектор не работает, только в IE.

Этот код работает для подавляющего большинства пользователей, и мы не можем воспроизвести проблему, но для пользователей, которые видят проблему, она постоянна и возникает каждый раз.

Кажется, что она изолирована от IE (хотя я не уверен)Мы используем jQuery 1.3.2 (из Google CDN).

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 02 февраля 2010

Было бы неплохо вставить окружающий код / ​​обработчик событий. Для начала я бы предложил использовать селектор :checkbox в первой строке:

$('#mytable input:checkbox:checked')

В инструкции написано:

$(':checkbox') эквивалентно $('*:checkbox'), так $('input:checkbox') следует использовать вместо этого.

Конечно, это может не иметь никакого значения. :checkbox эквивалентно $('[type=checkbox]'), поэтому может быть тем, что IE захлебывается input:checked частью вашего селектора, который тестирует все входные элементы для checked государство.

1 голос
/ 27 марта 2012

Я столкнулся с подобной проблемой, когда при жизни я не мог заставить IE распознавать окно, которое было «программно» проверено другим обработчиком событий.

прибегает к:

$("input[name='iptName'][CHECKED]").size()

По-видимому, IE (из 8 ароматизированных сортов) чувствительно относился к делу. «: проверено», «: проверено» и «[проверено]» были запрещены.

Кто-нибудь еще сталкивался с этим?

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