Как установить 2 элемента, выбранных по умолчанию в мультиселекте - PullRequest
2 голосов
/ 14 сентября 2011

Мой код ниже для заполнения множественного выбора значениями элементов 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);
        }
    });

1 Ответ

1 голос
/ 14 сентября 2011

Из документа плагина.

Вручную установить или снять флажок?

Флажки доступны после вызова метода «виджет». Просто вручную запустите событие NATIVE на них:

// вручную ставить (или снимать флажок) третий флажок в меню: $ ( "Выбрать") Множественный ( "виджет") найти ( ": флажок").. Каждый (функция () {. this.click (); });

Из-за этой ошибки в ядре jQuery необходимо использовать нативное событие щелчка (триггер («щелчок»)).

Все необходимые события и действия, такие как обновление значения кнопки, будут срабатывать автоматически.

Кроме того, вы можете присвоить исходному тегу опции выбранный атрибут, а затем вызвать метод обновления 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 для значения, которое он может принять)

...