2010-02-01 64 views
8

我看到一个错误,我无法从一小部分用户中复制。代码如下:jQuery:仅限IE,输入:选中后返回0即使选择了项目

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)。

任何想法?

回答

2

这将是一个好主意,粘贴你的周围的代码/事件处理程序。对于一个起点,我建议你的第一线使用:checkbox选择:

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

手册上说:

$(':checkbox')相当于 $('*:checkbox'),所以 $('input:checkbox')应使用 代替。

当然,这可能没有任何区别。 :checkbox相当于$('[type=checkbox]'),所以它可能是IE浏览器在您选择的input:checked一部分是测试checked状态的所有输入元素窒息。

1

我遇到了类似的问题,在我的生活中,我无法让IE识别出已被另一个事件处理程序以编程方式“检查”的框。

使出:

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

显然,IE(的8调味品种)正在对大小写敏感的。 ':checked',':CHECKED'和'[checked]'都是禁用的。

其他人碰到过吗?