我看到一个错误,我无法从一小部分用户复制。这是代码:
var selected = $('#mytable input:checked');
if (selected.length == 0) {
$('body').trigger('notice', 'Please select some items first');
return;
}
即使用户检查了几个复选框,也会触发“通知”。似乎selected.length是不应该的时候为零。
[更新]选择器在更新为:
时有效var selected = $('input[class="selection"]:checked');
似乎包括选择器中的id会破坏事物,仅在IE上。
此代码适用于绝大多数用户,我们无法复制该问题,但对于看到问题的用户来说,它是一致的,并且每次都会发生。
它似乎与IE隔离(虽然我不能确定)。我们正在使用jQuery 1.3.2(来自谷歌CDN)。
有什么想法吗?
答案 0 :(得分:2)
粘贴周围的代码/事件处理程序是个好主意。首先,我建议您在第一行使用:checkbox
选择器:
$('#mytable input:checkbox:checked')
手册说:
$(':checkbox')
相当于$('*:checkbox')
,所以 应该使用$('input:checkbox')
代替。
当然,这可能没有任何区别。 :checkbox
相当于$('[type=checkbox]')
,因此可能是IE在选择器的input:checked
部分窒息,该部分正在测试所有 checked
状态的输入元素。
答案 1 :(得分:1)
我遇到了类似的问题,在我的生活中,我无法让IE识别出一个已被另一个事件处理程序以编程方式“检查”的方框。
诉诸:
$("input[name='iptName'][CHECKED]").size()
显然,IE(8种风味)对此案敏感。 ':checked',':CHECKED','[checked]'不行。
其他人遇到这个?