如何在jquery multiselect中更改所选文本值

时间:2013-08-05 10:35:14

标签: jquery jquery-ui jquery-plugins multi-select

这是我的多选代码..

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

3 个答案:

答案 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
});