0

我会尽量做到这一点...使用 jQuery 多选复选框插件。选项是通过 AJAX 调用动态添加的。当用户选择一个项目/选项并关闭选择框时,该项目将与“删除”图标一起添加到 UI。该图标有一个动态添加的 ID,以便用户可以从 UI 中删除该项目,我也想从关闭的选择框中取消选中该项目。添加的 ID 是所选选项的“值”,以便我可以将 UI 上的项目与选择框中的选项相关联。当值很短(少于 2 个字)时,这很有效。但是当值大于 2 个字时,我得到一个错误:“无法识别的表达式:复选框 [值 = xxxxx]”。这个错误是从 jQuery 抛出的:

Sizzle.error = function( msg ) {
    throw new Error( "Syntax error, unrecognized expression: " + msg );
};

将实际值与“msg”进行比较,看来 jQuery 在 2 个单词后截断了 ID,因此无法将其与任何已知的 selectBox 值匹配。
好的,所以我决定使用所选项目的“索引”并将其添加到“删除”图标(连同一个标识符),这会将其与选择框中的所选选项相关联。当从 UI 中删除时,我会剥离标识符,只使用索引。我的问题是我无法取消选中这个东西。我试过这个:

$('select#'+cOption).multiselect("widget").find(":checkbox[index="+delVal+"]").each(function() {
                this.click();   // Remove check from deleted option

没有错误,只是没有取消选中。

我会发布整个内容,但它非常大而且有些复杂。基本上我只想通过索引而不是值取消选中选定的选项。

4

1 回答 1

0

利用

$('select#'+cOption).multiselect("widget").find(":checkbox[index='"+delVal+"']").each(function() {
                this.click();  });

代替

$('select#'+cOption).multiselect("widget").find(":checkbox[index="+delVal+"]").each(function() {
                this.click();  
于 2013-12-03T11:44:31.090 回答