проверитьвсе jquery

Вот что у меня есть для проверки всех флажков, и эти флажки находятся в раскрывающемся списке.

 _popup: function () {
            e.fn._popup.call(this), this.popup.one("open", function () {
                this.wrapper = c.wrap(this.element).addClass("km-popup")
            });

            // Modify popup to include a "Select All" checkbox.
            $(this.popup.element).children("ul:first-child").before("<ul class='k-list k-reset' unselectable='on' style='overflow: auto;'><li class='k-item' unselectable='on'><input id='selectall' type='checkbox' /><span>Selected</span></li></ul><hr/>");

            // Attach event handler to "Select All checkbox.
              $("#selectall").bind('change', function(){
                if($(this).prop('checked')){
                    $(".checkbox").prop('checked', true);
                }else{
                    $(".checkbox").prop('checked', false);
                }
            });

это обновляет флажки, чтобы визуально отображать на экране все выбранные или не выбранные. У меня есть кнопка, которая сообщает мне состояние модели представления, т.е. установлены ли флажки true или false. Проблема в том, что когда selectall работает и проверяет все, модель представления не обновляется с этими изменениями, то есть каждый раз, когда вы нажимаете флажок «Выбрать все», все остается ложным, когда нажимается тестовая кнопка, независимо от того, отмечены они или нет. Мне нужно каким-то образом обновить модель представления, когда я нажимаю «Выбрать все». Вся программа довольно сложна, но если вам нужно больше, чтобы понять мою проблему, дайте мне знать.

вот что есть в моей модели просмотра

var viewModel = kendo.observable({
    options: [{ text: "test1", value: 1, selected: false },
                { text: "test2", value: 2, selected: false },
                { text: "test3", value: 3, selected: false },
                { text: "test4", value: 4, selected: false }
                ]
});

person Chris Stopher    schedule 05.09.2012    source источник
comment
поэтому, если вы вручную установите флажок, он изменит значение?   -  person wirey00    schedule 06.09.2012
comment
Разве вы не можете обновить свою модель представления?   -  person Josh Mein    schedule 06.09.2012
comment
@wirey да, если вы вручную щелкнете по флажку, значение будет обновлено в модели представления, потому что я использую параметры data-bind=source: для ввода раскрывающегося списка и для шаблона флажка. Я использую data-bind='checked: selected', поэтому все должно быть связано   -  person Chris Stopher    schedule 06.09.2012


Ответы (1)


Попробуйте что-нибудь вроде этого

  $("#selectall").bind('change', function(){

        if($(this).prop('checked')){
            $(".checkbox").not(':checked').click();
        }else{
            $(".checkbox:checked").click();
        }
  });
person wirey00    schedule 05.09.2012
comment
когда я пытаюсь это сделать и нажимаю selectall, заполняется только верхний флажок, но этот верхний флажок обновляется в модели представления. Мне просто нужен способ проверить остальные флажки сейчас. - person Chris Stopher; 06.09.2012
comment
@ChrisStopher О .. хм .. позвольте мне создать скрипку, чтобы увидеть, нужно ли мне зацикливаться - person wirey00; 06.09.2012
comment
@ChrisStopher, это должно работать .. вот вам скрипка, чтобы увидеть, как это работает jsfiddle.net/eC3t6 - person wirey00; 06.09.2012