2012-08-23 83 views
0

我正在使用Jquery multiselect複選框插件,並在將返回的(CSV)值轉換爲數組時遇到錯誤。雖然這不是嚴格的jQuery問題,但它似乎在標準的js方法上拋出了一個錯誤。 繼承人我有什麼:jquery multiselect複選框值

$(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

什麼是'checkedVal'?是否存在由'which'表示的ID?由於ID是唯一的,'$(「#」+ which)'實際上應該是'$(this)'。你可以發佈一些標記嗎? – pimvdb

+0

checkedVals是一個mulitselctc方法,它返回csv字符串...我得到的回來沒關係。是的...每個選擇框都有一個唯一的ID ...實際上,任何選擇框都可以正常工作。我唯一的問題是拆分方法。也許它必須在多選「關閉」功能之外移動? – user1415445

回答

1

你必須做兩件事情

  1. 確保您已在HTML

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

  2. 無需轉換到陣列設置multiple屬性。 val將給出所選選項值的數組(非CSV)。

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

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

+0

其實不......它不返回數組。根據規格(和我回來的)它返回一個逗號分隔列表: – user1415445

+0

你檢查我的js小提琴嗎?請參閱登錄控制檯 – Diode

+0

http://jsfiddle.net/diode/32h2g/2/ – Diode