这是我的多选代码..
$("#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,...
'
答案 0 :(得分: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(', ');
}
}
这给了我解决方案.. :)
答案 1 :(得分:0)
试试这个:
$.map($(this).multiselect("getChecked"), function( input ){
return input.value;
});
要显示所选文本,您可以检查所选文本的长度,如下所示:
checkedValues.length > 0 ? checkedValues.length > 1 ? checkedValues[0] + ',...' : checkedValues[0] : 'Please select an input'
答案 2 :(得分:0)
简单地说:
$('#example-reset').multiselect({
header: true,
height: 150,
allSelectedText: 'ALL UNITS SELECTED',
selectedList: 1,
numberDisplayed: 1,
nonSelectedText: "CLICK TO SELECT",
minWidth: 210
});