0

我正在使用 Jquery 多选复选框插件,将返回的 (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 is not a function” - 在这一行抛出: var valArray = checkedVals.split(',');

4

1 回答 1

1

你必须做两件事

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

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

  2. 无需转换为数组。val将给出所选选项值的数组( NOT CSV )。

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

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

于 2012-08-23T12:11:35.517 回答