Javascript jquerymultiselect插件返回空长度(应该是0?)
使用jquerymultiselect插件并需要检查是否已进行了任何选择,用户可以在不选择任何内容的情况下打开和关闭选择框。这个插件有一个close方法,我使用它来获取所选/选中选项的数组:Javascript jquerymultiselect插件返回空长度(应该是0?),javascript,jquery,arrays,null,Javascript,Jquery,Arrays,Null,使用jquerymultiselect插件并需要检查是否已进行了任何选择,用户可以在不选择任何内容的情况下打开和关闭选择框。这个插件有一个close方法,我使用它来获取所选/选中选项的数组: var checkedVals = []; checkedVals = $('#'+which).val(); // Get Array of checked options alert(checkedVals.length); // See if it's empty 当选择/选中某个选项
var checkedVals = [];
checkedVals = $('#'+which).val(); // Get Array of checked options
alert(checkedVals.length); // See if it's empty
当选择/选中某个选项时,它工作正常,因此我知道我正在返回值,但当未选择任何选项时,Firebug会抛出一个错误,指出checkedVals为null。空数组应为0。。。不为空。请。。。我们不要讨论试图捕获null
感谢您的帮助:
对于元素,.val方法返回一个包含每个选定选项的数组;如果未选择任何选项,则返回null
因此.val的行为符合预期,并且您的代码是正确的,但您必须添加一个检查,以确定.val返回null的可能性是否完全合理。来自:
对于元素,.val方法返回一个包含每个选定选项的数组;如果未选择任何选项,则返回null
因此.val的行为符合预期,并且您的代码是正确的,只是您必须添加一个检查,检查.val返回null的可能性是否完全合理。这样编写,您将始终拥有一个数组
var checkedVals = $('#'+which).val() || [];
alert(checkedVals.length);
它会将checkedVals设置为.val值,如果为null,则设置为空数组。这样写,您将始终拥有一个数组
var checkedVals = $('#'+which).val() || [];
alert(checkedVals.length);
它会将checkedVals设置为.val值,如果为null false,则设置为空数组。完全有可能$+which.val返回未定义,这意味着checkedVals不是空数组,并导致您遇到错误。$+which.val完全有可能返回未定义,这意味着checkedVals不是空数组,并导致您遇到的错误。好的。。。谢谢当我只检查数组本身时,它实际上返回未定义。这就是我尝试.length方法的原因。我将尝试捕获null,null,或者val返回的任何内容。好的。。。谢谢当我只检查数组本身时,它实际上返回未定义。这就是我尝试.length方法的原因。我将尝试捕获null、null或val返回的任何内容。