如何设置多选时默认选择2个项目

发布于 2024-12-04 08:56:59 字数 1523 浏览 1 评论 0原文

我的下面的代码使用项目值 1 和 2 填充多选,默认选择,但仅选择项目值 2:

$.ajax({
        type: "POST",
        url: Url_function,
        data: para_datas,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function OnPopulateControl(response) {
            list = response.d;
            control.multiselect({
                selectedList: selectedlist,
                header: false,// 0-based index
                selectedList: 2
            });
            var $select = control.multiselect('disable');
            if (list.length > 0) {
                        $select.multiselect('enable');
                        $.each(list, function () {
                            control.append($("<option></option>").val(this['Value']).html(this['Text']));
                            //console.log(this['Text']);
                        });
                    }
                    else {
                        control.empty().append('<option selected="selected" value="0">Not available<option>');
                    }
                a_list_selected = valueselected.split(',');//valueselected = '1,2'
                for (i =0; i< a_list_selected.length; i++)
                {
                      control.val(a_list_selected[i]).attr('selected',true);

                }
                 control.multiselect('refresh'); //refresh the select here
        },
        error: function () {
            alert(Error_message);
        }
    });

My code below to populate multiselect with item value 1 and 2 are default selected but only item value 2 is selected :

$.ajax({
        type: "POST",
        url: Url_function,
        data: para_datas,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function OnPopulateControl(response) {
            list = response.d;
            control.multiselect({
                selectedList: selectedlist,
                header: false,// 0-based index
                selectedList: 2
            });
            var $select = control.multiselect('disable');
            if (list.length > 0) {
                        $select.multiselect('enable');
                        $.each(list, function () {
                            control.append($("<option></option>").val(this['Value']).html(this['Text']));
                            //console.log(this['Text']);
                        });
                    }
                    else {
                        control.empty().append('<option selected="selected" value="0">Not available<option>');
                    }
                a_list_selected = valueselected.split(',');//valueselected = '1,2'
                for (i =0; i< a_list_selected.length; i++)
                {
                      control.val(a_list_selected[i]).attr('selected',true);

                }
                 control.multiselect('refresh'); //refresh the select here
        },
        error: function () {
            alert(Error_message);
        }
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七婞 2024-12-11 08:56:59

来自插件的文档。

手动选中或取消选中复选框?

调用“widget”方法后可以访问复选框。只需手动触发它们的 NATIVE 点击事件即可:

// 手动选中(或取消选中)菜单中的第三个复选框:
$("select").multiselect("widget").find(":checkbox").each(function(){
this.click();
});

由于 jQuery 核心中的此错误,必须使用本机单击事件(trigger('click') 将不起作用)。

所有必要的事件和操作(例如更新按钮值)都会自动触发。

或者,您可以为原始选项标记赋予 selected 属性,然后调用 MultiSelect 的刷新方法。

您已选择了选定的方式,但在代码中,您的设置选择为 true control.val(a_list_selected[i]).attr('selected',true);。设置它的值是 'selected' 就像 control.val(a_list_selected[i]).attr('selected','selected'); (参见 http://reference.sitepoint.com/html/option/selected 的值拿)

From the doc of the plugin.

Manually check or uncheck a checkbox?

The checkboxes can be accessed after calling the "widget" method. Simply manually trigger the NATIVE click event on them:

// manually check (or uncheck) the third checkbox in the menu:
$("select").multiselect("widget").find(":checkbox").each(function(){
this.click();
});

The native click event must be used (trigger('click') will not work) due to this bug in jQuery’s core.

All necessary events and actions, like updating the button value, will automatically fire.

Alternatively, you could give the original option tag the selected attribute, and then call MultiSelect’s refresh method.

You've opted for the selected way but in your code, your setting selected to true control.val(a_list_selected[i]).attr('selected',true);. The value to set it is 'selected' like control.val(a_list_selected[i]).attr('selected','selected'); (see http://reference.sitepoint.com/html/option/selected for example for the value it could take)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文