jquery multiselect复选框值

时间:2012-08-23 11:34:22

标签: javascript jquery

我正在使用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(',');

1 个答案:

答案 0 :(得分:1)

你必须做两件事

  1. 确保您在html中设置了multiple属性

    <select id="select" multiple="multiple">

  2. 无需转换为数组。 val将为所选选项值提供数组(非CSV)。

    var valArray = $('#' + which).val();

  3. 演示:http://jsfiddle.net/diode/32h2g/3/