2016-02-29 74 views
0

我有一個bool product.wantExtraInsurance我正努力通過knockoutjs綁定到一個單選按鈕組,如下所示:KnockoutJs結合單選按鈕

<div class="btn-group" data-toggle="buttons"> 
    <label class="btn btn-default"> 
     <input type="radio" value="true" data-bind="checked: product.wantExtraInsurance" />Yes 
    </label> 
    <label class="btn btn-default"> 
     <input type="radio" value="false" data-bind="checked: product.wantExtraInsurance" />No 
    </label> 
</div> 

組動作不能正常工作,請你告訴我,最好的辦法爲了達成這個。謝謝

回答

1

要綁定單選按鈕,您可以創建另一臺計算機observable並將其綁定到單選按鈕。使用您的observable將數據發送回服務器。 對於收音機組選項,請爲分組項目(單選按鈕)提供相同的名稱。

viewmodel.js

vm.product.wantExtraInsuranceOption = ko.pureComputed({ 
    read: function() { 
     return vm.product.wantExtraInsurance().toString(); 
    }, 
    write: function (value) { 
     vm.product.wantExtraInsurance(value === "true"); 
    } 
}); 

HTML:

<div class="btn-group" data-toggle="buttons"> 
    <label class="btn btn-default"> 
    <input type="radio" name="insuranceOption" value="true" data-bind="checked: vm.product.wantExtraInsuranceOption" />Yes 
    </label> 
    <label class="btn btn-default"> 
    <input type="radio" name="insuranceOption" value="false" data-bind="checked: vm.product.wantExtraInsuranceOption" />No 
    </label> 
</div> 

注:請加載所有預先必需品一樣knockoutJs。

0

name屬性添加到具有相同名稱的按鈕。這將他們分組。

@Roy J所述,請查看文檔knockoutjs.com/documentation/checked-binding.html以獲取數據綁定。

+2

但是,div也沒有'value'屬性。用戶應參考文檔。 http://knockoutjs.com/documentation/checked-binding.html –