0

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(',');

4

1 に答える 1

1

あなたは2つのことをしなければなりません

  1. multiplehtmlでプロパティを設定したことを確認してください

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

  2. 配列に変換する必要はありません。val選択したオプション値の配列 (CSV ではない) を返します。

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

デモ: http://jsfiddle.net/diode/32h2g/3/

于 2012-08-23T12:11:35.517 に答える