2010-02-01 31 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]'都是禁用的。

其他人碰到過嗎?