簡體   English   中英

單擊時全部選中了剔除中的復選框數組

[英]checkbox array in knockout being all checked on click

我在淘汰賽中遇到問題,當我選中一個框時,它們都被選中了...

這就是我所擁有的:_Categories_List具有所有項目,而My_categories是我想要添加每個ID的空列表

這是代碼:

 <!-- ko foreach: _Categories_List --> 
    <input type="checkbox" data-bind="attr: {value: $data}, checked: $root.My_categories" />
    <span data-bind="text: CODE"></span><br />
 <!-- /ko -->

這是代碼的JS部分(我無法真正更改文檔中代碼的方式,因為我正在構建其他人的工作,並且應該使用相同的代碼-引用mapping.fromJS):

var Poi = new Object();  
Poi.My_categories = [];
var _Poi = ko.mapping.fromJS(Poi);

var Categories_List = [];
var _Categories_List = ko.mapping.fromJS(Categories_List);

$(document).ready
(
    function () {        
       ko.applyBindings(_Poi);
       // here there's an ajax function to load the categories returned in i_Input.My_Result, then:
       ko.mapping.fromJS(i_Input.My_Result, _Categories_List);
    }
);

這是從ajax加載的對象的樣子:

{"My_Result":[
  {"CODE":"chalet","DEF_POIS_CATEGORY_ID":2,"DESCRIPTION":"chalet","ENTRY_DATE":"2012-10-10","ENTRY_USER_ID":2,"OWNER_ID":1},
  {"CODE":"vila","DEF_POIS_CATEGORY_ID":3,"DESCRIPTION":"villa","ENTRY_DATE":"2012-10-10","ENTRY_USER_ID":2,"OWNER_ID":1}
]}

checked綁定不使用輸入元素的value 在您的代碼中,您將值設置為等於一個對象,該對象變成[object Object] ,因此您的兩個輸入都具有相同的值,這就是為什么選中一個將兩者都切換的原因。

因此,您需要將值設置為等於CODE屬性之類的對象上的鍵。 如有必要,則可以使用計算出的可觀察值來表示實際對象。

這是一個示例: http : //jsfiddle.net/rniemeyer/7n9gR/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM