我正在使用Jquery multiselect复选框插件,并在将返回的(CSV)值转换为数组时出错。虽然这不是严格来说,jQuery问题似乎在标准的js方法上引发了错误。 继承人我所拥有的:
$(function(){
$("select").multiselect({
click: function(e){
if( $(this).multiselect("widget").find("input:checked").length > 4 ){
return false;
}
},
close:function(evt, ui) { // Get the selected values upon close
var which = $(this).attr('id'); // Find out which selectbox was open
var checkedVals = $('#'+which).val(); // Get CSV string of checked options
var valArray = checkedVals.split(','); // convert CSV string to array
for(a in valArray) {
currentBox = ('#'+which+'Box'); // Find current selectbox wrapper
var eHeight;
eHeight = $('p'+currentBox).height(); // Current wrapper height
$('p'+currentBox).height(eHeight+18); // Add 18px to current wrapper for each Value
$('p'+currentBox).append('<div style="line-height:18px; margin-left:90px;"><a href="#"><img class="deleteVal" src="images/closewin.png" align="texttop" border="0"></a> '+valArray[a]+'</div>');
}
}
}).multiselectfilter();
我找回一个逗号分隔的字符串,我希望使用js将其放入数组中。 错误 - “checkedVals.split不是函数” - 抛出此行: var valArray = checkedVals.split(',');
答案 0 :(得分:1)
你必须做两件事
确保您在html中设置了multiple
属性
<select id="select" multiple="multiple">
无需转换为数组。 val
将为所选选项值提供数组(非CSV)。
var valArray = $('#' + which).val();