我正在玩Knockout.js并创建了这个简单的例子:http://jsfiddle.net/JcTxT/30/
<div id="term_grp" data-role="fieldcontain"><a>Semester:</a>
<fieldset id="term_fields" data-role="controlgroup" data-type="horizontal">
<input type="radio" name="term" id="ss" value="ss" data-bind="checked: term" />
<label for="ss">Sommersemester</label>
<input type="radio" name="term" id="ws" value="ws" data-bind="checked: term" />
<label for="ws">Wintersemester</label>
</fieldset>
Term is <span data-bind="text: pommes"></span>
var aResult = {
term: ko.observable("ss"),
pommes: "TEST"
};
$(document).on('pagebeforeshow', '#mainPage', function () {
ko.applyBindings(aResult);
});
我希望检查一个单选按钮(值为“ss”的那个)但事实并非如此。有谁知道,为什么?
干杯
答案 0 :(得分:5)
如果使用,它可以使用:
$(function () {
ko.applyBindings(aResult);
});
并关闭jquery mobile。
我试过你的jsfiddle。
如果您需要jquery mobile,此链接有效: http://www.codesizzle.com/jquery-mobile-radio-with-knockout-js/
答案 1 :(得分:2)
好的,需要做什么?
添加另一个事件处理程序并将其添加到绑定:
var aResult = {
term: ko.observable("ws"),
pommes: "TEST2"
};
ko.bindingHandlers.mobileradio = {
init: function (element, valueAccessor) {},
update: function (element, valueAccessor) {
var value = valueAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
if (valueUnwrapped == $(element).val()) {
$(element).prop("checked", "true").checkboxradio("refresh");
} else {
$(element).removeProp("checked").checkboxradio("refresh");
}
}
};
$(function () {
ko.applyBindings(aResult);
});