2011-11-04 99 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);

相关问题