2017-09-08 4 views
-1

以下は私のコードです。foreachループでリストを生成します。ラジオボタンのIDは、すべての自動生成ラジオボタンで同じですのでラジオボタンに基づいて特定の値を取得できません選択してくださいので、therは価値を得るための任意のオプションです。クリックしたラジオボタンに基づいて子要素の値を取得する方法

<div id="divaddress" data-bind="foreach: Addresslist"> 
    <div class="col-lg-4 col-md-4 col-xs-4"> 
     <div class="i-boxb"> 
      <input class="checkout-radio" type="radio" name="existingaddress" id="exadressid" data-bind="click:GetAddressId" @*onclick="GetAddressId()"*@ /> 
      <label class="cradio" for="normal" data-bind="text:Name" style="font-weight:bold"> </label> 
      <p data-bind="text:Address"></p> 
      <p data-bind="text:City"></p> 
      <p data-bind="text:State"></p> 
      <p data-bind="text:Pincode"></p> 
      <p id="Mobileno" data-bind="text:Mobile"></p> 
     </div> 
    </div> 
</div> 
+1

を作成している、あなたは、コードの代わりに、スクリーンショットを投稿をコピーして貼り付けることができ? –

+0

たとえば、このコードを実行すると、データベースから2つまたは3つのリストを生成できます。ラジオボタンの選択の基盤私はその子要素の価値を得る必要があります。 –

+0

これができると思われるものの完全な例を教えてください。それは、あなたを理解することが難しいことだけです。申し訳ありません。 –

答えて

0

私が正しく理解していれば、アドレス帳にはそれぞれのチェックボックスが付いています。ユーザーがショッピングサイトのようにチェックしたときにアドレスのIdを取得したい場合

ビューモデルにselectedAddressIdというプロパティを追加する必要があります。

var viewModel = function() { 
    var self = this; 
    self.selectedAddressId = ko.observable(); 
    self.Addresslist = ko.observableArray([ 
     { Id: 1, Address: "Number 10", City: "London" }, 
     { Id: 2, Address: "Number 420", City: "Delhi" }, 
    ]); 

    // this will subscribe to the radio selection changes 
    self.selectedAddressId.subscribe(function (selectedValue) { 
     // all the logic you want on selecting of checkbox goes here 
     alert(selectedValue); 
    }); 
}; 

次に、HTMLではcheckedバインディングを使用できます。あなたはラジオ結合にラジオ入力のvalue

<div id="divaddress" data-bind="foreach: Addresslist"> 
    <div class="col-lg-4 col-md-4 col-xs-4"> 
     <div class="i-boxb"> 
      <input class="checkout-radio" type="radio" name="selectedAddressId" data-bind="value:id, checked: $parent.selectedAddressId" /> 
      <label class="cradio" for="normal" data-bind="text:Name" style="font-weight:bold"> </label> 
      <p data-bind="text:Address"></p> 
      <p data-bind="text:City"></p> 
      <p data-bind="text:State"></p> 
      <p data-bind="text:Pincode"></p> 
      <p id="Mobileno" data-bind="text:Mobile"></p> 
     </div> 
    </div> 
</div> 

お知らせ$parent.selectedAddressIdにアドレスのIdをバインドする必要があります。 $parentがなければ、ノックアウトが

のViewModel

あなた Addressオブジェクトではなく、あなたの親に selectedAddressIdプロパティになり、私はそれをより快適にするために fiddle

+0

ありがとうございます。 。ラジオボタンをクリックするだけでモバイル番号を取得したいのですが、アドレスIDはありません。どうですか? –

+0

あなたは2つのことを行うことができます:あなたの 'Addresslist'をフィルタリングし、' Id'が選択されたIdであるオブジェクトを取得します。 *または*単に電話番号が必要な場合は、 'Mobile'プロパティを無線入力の' value'にバインドすることができます。このように:https://jsfiddle.net/dqUAz/1631/ – adiga

関連する問題