1

使用 jQuery Multiselect 插件,需要检查是否有任何选择(用户可以打开和关闭选择框而不选择任何内容)。这个插件有一个“关闭”方法,我用它来获取选定/选中选项的数组:

var checkedVals = [];
checkedVals = $('#'+which).val();   // Get Array of checked options
alert(checkedVals.length);      // See if it's empty

选择/选中选项时,它可以正常工作(所以我知道我返回值),但是当没有选择任何内容时,Firebug抛出了一个错误,指出校验象是空的。一个空数组应该是 0... 不是 null。并且请......让我们不要讨论试图捕获“null”。

谢谢你的帮助

4

2 回答 2

3

来自.val() 的 jQuery 文档

<select multiple="multiple">元素的情况下, .val() 方法返回一个包含每个选定选项的数组;如果未选择任何选项,则返回null

行为与预期一样,并且您的代码是正确的,除了您必须添加一个检查以检查可以返回 null.val()的完全合理的可能性。.val()

于 2012-08-28T13:39:25.920 回答
3

像这样写,你将永远有一个数组

var checkedVals = $('#'+which).val() || [];
alert(checkedVals.length);      

它将 checkVals 设置为 .val() 值或空数组,如果它为空(假)。

于 2012-08-28T13:40:37.830 回答