2016-04-20 6 views
0

私がしようとしているのは、サーバーからのデータを含むラジオボタンを表示することです。問題は、ラジオボタンのチェック値がすべて偽である可能性があり、次に私が下で作成したJSフィドルのようにKO automaticalyが最後のラジオボタンを選択することです。値の1つが真である場合、これは意図どおり完全に動作しますが、私の場合、これらの値がすべて偽である可能性が高くなります。ノックアウトJSすべての値が真である場合に最後のボタンを選択するラジオボタン

https://jsfiddle.net/9mtzbmng/1/

self.addItems = function (items) { 
      for (var x in items) 
      { 
       self.Items.push(new Item(items[x])); 
      } 
     } 
    function Item(items) { 
    this.ID = items.ID; 
    this.Checked = ko.observable(false); 
    } 

<input type="radio" data-bind="value: $data.ID,checked: Checked, checkedValue: Checked" name="items"> 

EDIT: https://jsfiddle.net/hrhuym0u/ は私の問題は、checkedValue: 'true'を設定し、this.Checked = ko.observable("false")を設定することで、このjsfiddleに従った後修正されました! documentationから

+0

質問自体が問題をREPROするために必要なすべてのコードが含まれていることを確認してください。あなたの[jsfiddle link rots](https://en.wikipedia.org/wiki/Link_rot)は、将来の訪問者にとって質問があまり役に立たなくなるでしょう。 – Jeroen

答えて

2

:KO要素を設定しますラジオボタンの場合

は、チェックする場合は、パラメータ値は、ラジオボタンノードの `` value属性またはcheckedValueで指定された値と等しい場合にのみ、パラメータあなたのケースでは

あなたはtruecheckedValueを設定する必要がありますので、あなたのCheckedに観察が含まれている場合にのみtrueそれはあなたのラジオボタンをチェックします:

<input type="radio" name="radioB" data-bind="value: $data.ID, 
              checked: Checked, 
              checkedValue: true"> 

デモhttps://jsfiddle.net/r6njzje3/

注:お使いのラジオボタンは、それらの一方のみがチェックできるように、同じnameは、彼らがグループを形成しているがあれば、それは常にあなたの元のサンプルの最後の一つの方法でありますチェックされます。 checkedは常にcheckedValueの値と等しいためです。したがって、名前name="radioB"を削除すると、すべてのラジオがチェックされます。

注2:実際のboolea値がCheckedのプロパティにあることを確認してください。サーバは文字列としてそれらを送信しません。 "true"、この場合には、あなたも文字列としてcheckedValueを指定する必要があるため:

<input type="radio" name="radioB" data-bind="value: $data.ID, 
              checked: Checked, 
              checkedValue: 'true'"> 

デモ:https://jsfiddle.net/hrhuym0u/

+0

問題は現在すべてが真であるため、サーバーからデータの1つが真であると判断された場合、値はチェックされません。 – xDevil

+0

名前属性を削除しましたか?私にとっては、ここですべての真実とすべての虚偽で正常に動作しています:https://jsfiddle.net/7w2uvjqz/1/、それはまだ動作していない場合は、このフィドルを更新することはできますか? – nemesv

+0

私はグループとして行動する必要があるので、私はatributeという名前を削除していません。これは、私が作ったjsfiddleで同じ名前を持っている理由です。 – xDevil