0

这是我的多选代码..

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

3 回答 3

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


                    }

这给了我解决方案.. :)

于 2013-08-06T06:15:19.510 回答
0

试试这个:

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

要显示所选文本,您可以检查所选文本的长度,如下所示:

checkedValues.length > 0 ? checkedValues.length > 1 ? checkedValues[0] + ',...' : checkedValues[0] : 'Please select an input'
于 2013-08-05T10:41:04.177 回答
0

只需这样做:

$('#example-reset').multiselect({
    header: true,
    height: 150,
    allSelectedText: 'ALL UNITS SELECTED',
    selectedList: 1,
    numberDisplayed: 1,
    nonSelectedText: "CLICK TO SELECT",
    minWidth: 210
});
于 2015-04-13T14:25:59.180 回答