2013-08-05 50 views
0

這是我多選代碼..如何在jQuery的更改所選文本值多選

$("#cboMethod").multiselect({ 
       header: true, 
       height: 150, 
       selectedText: '# Method Selected', 
       selectedList: 2, 
       noneSelectedText: "Select Method", 
       minWidth: 210 
      }); 

在我來說,我有三個或更多的選擇......讓它成爲「OptionA」,「OptionB」, 'OptionC'等。 因此,如果我單獨選擇'OptionA',我需要將我的selectedText顯示爲'OptionA'。它應該是「OptionA,......」如果我選擇了多個值,包括「OptionA」

我以前selectedList: 2,所以,如果我只選擇「OptionA」其工作如預期...但如果選擇更多的選擇是越來越改爲 'OptionA,OptionB' ......

這有可能使其爲 'OptionA,...'

回答

4

我已經做在multiselect.js

這是代碼改變一個小的變化得到了我的解決方案:

原始代碼:

else if (/\d/.test(o.selectedList) && o.selectedList > 0 && numChecked <= o.selectedList) { 
        value = $checked.map(function() { return $(this).next().text(); }).get().join(', '); 
       } 

更改代碼:

else if (/\d/.test(o.selectedList) && o.selectedList > 0 && numChecked <= o.selectedList) { 
         var result = $checked.map(function() { return $(this).next().text(); }).get().join(', '); 
         result = result.split(','); 
         if (result.length > 1) { 
          value = result[0] + ',...'; 
         } 
         else { 
          value = $checked.map(function() { return $(this).next().text(); }).get().join(', '); 
         } 


        } 

這給我的解決方案.. :)

0

試試這個:

$.map($(this).multiselect("getChecked"), function(input){ 
      return input.value; 
}); 

顯示選定的文本你可以d o是你可以對所選像長度的檢查如下圖所示:

checkedValues.length > 0 ? checkedValues.length > 1 ? checkedValues[0] + ',...' : checkedValues[0] : 'Please select an input' 
+0

這讓我檢查的值..其實selectedList做同樣的 – Xavier

+0

更新,請檢查它是否對您有幫助...或者在您提供小提琴的情況下很容易解決您的問題 –

0

簡單地做:

$('#example-reset').multiselect({ 
    header: true, 
    height: 150, 
    allSelectedText: 'ALL UNITS SELECTED', 
    selectedList: 1, 
    numberDisplayed: 1, 
    nonSelectedText: "CLICK TO SELECT", 
    minWidth: 210 
});