0

我的网站上有一个 Eric Hynd 的多选小部件的实例。

在它的点击处理程序中,我有一个警报告诉我选择了多少个复选框 -

alert($(this).multiselect("getChecked").length

假设小部件开始时没有选中任何复选框。如果我选中一个,警报会给我“1”,这意味着当点击处理程序被点击时复选框已经被选中。

现在说,我没有明确点击,而是按照 Eric Hynds 的建议来伪造点击——

$("select").multiselect("widget").find(":checkbox:eq(2)").trigger("click");

(我在这里选择值为 2 的复选框只是为了演示。)这里的警报给了我 0。

当我试图限制用户可以选择的复选框数量时,我无法弄清楚为什么会出现这种差异及其导致的问题。他们不仅可以通过单击复选框来检查复选框,还可以通过单击小部件外部的内容来检查复选框,这就是为什么我必须假装点击实际复选框的原因。

任何帮助表示赞赏,谢谢!

4

1 回答 1

1

文档说:

...由于jQuery核心中的这个错误,必须使用本机点击事件(触发器('click')将不起作用)......

所以,我认为是这样的:

$("select").multiselect("widget").find(":checkbox:eq(2)").each(function(){  
    this.click(); 
}); 
于 2011-08-30T12:54:35.513 回答