目前,我有以下的HTML ...淘汰賽結合的單選按鈕最初沒有工作
<input type="radio" style="height: 12px; width: 20px;" name="physTabPregRadio" value="true" data-bind="checked: pregnant.radioBool" />Y
<input type="radio" style="height: 12px; width: 20px;" name="physTabPregRadio" value="false" data-bind="checked: pregnant.radioBool" />N
<span data-bind="text: pregnant.radioBool" />
...和radioBool
功能是KO的延伸,這裏定義...
ko.observable.radioBool = function() {
var observable = ko.observable();
observable.radioBool = ko.computed({
read: function() {
if (observable() === true) return 'true';
else if (observable() === false) return 'false';
else return 'unknown';
},
write: function (v) {
if (v.toLowerCase() === 'true') observable(true);
else if (v.toLowerCase() === 'false') observable(false);
else observable(undefined);
}
});
return observable;
};
...在這樣的模式被初始化...
self.pregnant = ko.observable.radioBool();
self.pregnant(false);
在加載頁面,無論是無線電b utton被選中,但span的文本是「false」。是否有任何可能的原因爲什麼單選按鈕不被檢查,即使它的值等於單選按鈕的值之一?
你能創建這樣一個工作的例子嗎? [我沒有重現它。](https://jsfiddle.net/hp8jter2/) –
你想用這種方法完成什麼? –
@MikeC我認爲你需要使用radioBool。更新小提琴:https://jsfiddle.net/hp8jter2/1/ –