2

JQuery Mobile と KnockoutJS を使用してモバイル アプリケーションを開発しています。AJAX 呼び出しからチェックボックスのリストを正常にロードできました。チェックボックスのリストは、ノックアウト js foreach バインディングを使用してバインドされています。ただし、選択したチェックボックスの値を lsit から取得する方法がわかりませんでした。どんなアイデアでも非常に高く評価されます。

ここに私のHTMLがあります

 <p>
    Select Items(s):
    <div id="itemList">
    <ul id="itemList" data-role="listview"  data-inset="true" >
        <fieldset id="myList" data-role="controlgroup" data-bind="foreach : Items">
            <li id="chkRoles" data-role="fieldcontain" data-filter="true">
               <input data-theme="c" type="checkbox" data-role="controlgroup" data-bind="attr: { 'data-id': Id, name: 'checkbox-' + Id, id: 'checkbox-' + Id  }" />
                <label data-theme="c" data-bind="text: ItemName, attr: { for: 'checkbox-' + Id }"></label>
            </li>
     </fieldset>
     </ul>
    </div>
</p>    

私のViewModel JS

    ItemViewModel = function(){
var self = this;
self.Items = ko.observableArray([])
}

var viewModel = new ItemViewModel();

//doing an AJAX call to load ObservableArray
viewModel.Items(data);
$("#itemList").listview("refresh").find('input').checkboxradio();

ko.applyBindings(viewModel);
4

1 に答える 1

1

チェックされた値のみを保持する別のobservableArrayを持つことができます。次に、チェックボックスに「value」属性を指定し、それらに「checked」バインディングを使用してobservableArrayを指定すると、配列はチェックされた入力の値のみで自動的に更新されます。(これはすべてここで説明されています

私はあなたのコードをjsfiddleに入れ、ここでそれらの変更を行いました:http: //jsfiddle.net/antishok/ektUp/

于 2012-04-29T20:15:50.120 に答える