2011-05-10 85 views
2

我在使用JQuery下拉列表。我想要检查一定数量的选项(例如三个),如果我检查了第四个选项,则不检查。我看过有:onItemClick: function(checkbox) {}。这个函数里面有什么方法可以知道选中元素的数量?我没有得到它。JQuery下拉列表取消选中复选框,如果有一定数量的复选框已被选中

我也尝试过改变底层HTML选择事件,但没有运气(我得到了一些东西,但不完全是我需要的功能)。

回答

0

onItemClick:功能(复选框){}的 onItemClick选项,当用户点击 上的任何项定义的回调函数 调用。它被称为 单个参数,它是 动态生成的复选框 元素。回调可以通过抛出任何错误'拒绝' 点击。

所以这样的事情应该工作(未经测试):

onItemClick: function(checkbox) { 
    if($("#ddcl-YOURSELECTID-ddw input:checked").length >=3){ 
     throw "TOO MANY!"; 
    } 
} 

您还需要检查传入的checkbox,看它是否拒绝前检查或没有,因为你不想禁止取消选中。我不确定传递的复选框处于什么状态(单击之前或之后),因此您只需测试它并在if中添加适当的条件即可。

+0

感谢您的答案,这一个工作。 – ShengLong 2011-05-11 15:01:30

1

也许一个简单的解决方案会是这样的:

$('input:checkbox').click(
    function(){ 
     if ($('input:checkbox:checked').length >= 3) { 
      return false; 
     } 
    }); 

JS Fiddle demo

尽管上述内容是由于我不熟悉onItemClick函数而发布的。可能并且希望其他人可以就这个问题的这个方面提供更有针对性的建议。

相关问题