2011-11-04 98 views
4

我有一個非常有趣的問題。我正試圖取消選中我的網頁上的所有複選框。所有複選框都有以「chkbx_」開頭的ID。取消選中所有複選框只能使用jquery一次

我試着這樣做:

$('input[id^="chkbx_"]').removeAttr("checked"); 

這:

$('input[id^="chkbx_"]').attr("checked", false); 

它的工作原理只有一次!第二次,它似乎被忽略。

基本上,我試圖使複選框的行爲像單選按鈕。當我檢查一個我運行函數接收這個(參考)作爲參數,我首先取消所有複選框,然後我檢查一個被點擊。

我也試圖用這個要經過所有複選框,看看他們進行檢查:

$('input[id^="chkbx_"]').each(function() { ... }); 

即使有4個複選框,上面循環只執行一次,頁面上的第一個複選框。

出了什麼問題?謝謝

+0

您的其他代碼在哪裏,取消選中這些複選框的功能? –

+1

不要讓複選框像單選按鈕一樣操作。這違反了用戶界面準則。使用實際的單選按鈕。 –

+1

我無法重現您的問題。解決這個問題的一種可能的方法是使用'prop':'$('input [id^=「chkbx _」]')。prop(「checked」,false);' –

回答

1

其他一定是錯的。

勾勒了這個例子: http://jsfiddle.net/nzmv8/

正常工作? :)

+0

我仍然有這個問題。我以爲我可能有一些重複ID的元素,但Firebug無法找到任何。我使用GUID作爲複選框的ID,例如我的複選框有ID: – bobetko

+0

chkbx_5f3300256 -... chkbx_707171e7-abb ... 不知道,也許在ID有guid使ID太長,這使jqury發瘋? – bobetko

+0

嘗試插入你的GUID在這裏:http://jsfiddle.net/nzmv8/2/ - 似乎仍然工作:/你沒有運行任何其他庫可能衝突? –

0

使用丙代替ATTR

  • $( '輸入[ID^= 「chkbx _」]')丙( 「選中」,假)。

  • $('input [id^=「chkbx _」]')。prop(「checked」,true);

相關問題