2

我下面用项目值 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);
        }
    });
4

1 回答 1

1

来自插件的文档。

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

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

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

由于 jQuery 核心中的这个错误,必须使用本机点击事件(触发器('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例如它可以采用的值)

于 2011-09-14T07:27:30.440 回答