Javascript 单选按钮选中绑定html5、durandal
尽管我在这个网站上看到了很多类似的问题,但没有人回答我的问题。 所以,请不要因为我再次讨论这个话题而生我的气。 我在durandal项目工作,我有html页面,后面有javascript文件。 我有两个单选按钮在其中一页。 我希望它们的“checked”属性绑定到视图模型中的变量。 看起来很简单。。。但事实并非如此! 我尝试了两种方法,其中任何一种都没有成功: 第一种方式:在html中:Javascript 单选按钮选中绑定html5、durandal,javascript,html,knockout.js,durandal,Javascript,Html,Knockout.js,Durandal,尽管我在这个网站上看到了很多类似的问题,但没有人回答我的问题。 所以,请不要因为我再次讨论这个话题而生我的气。 我在durandal项目工作,我有html页面,后面有javascript文件。 我有两个单选按钮在其中一页。 我希望它们的“checked”属性绑定到视图模型中的变量。 看起来很简单。。。但事实并非如此! 我尝试了两种方法,其中任何一种都没有成功: 第一种方式:在html中: <input type="radio"
<input type="radio"
name="radSearchBy"
id="byNo"
data-bind:"checked:isId" />
in javascript:
isId: ko.observable(true)
in javascript:
isId: ko.observable("checked")
我知道问题出在哪里。
即使我只是写
<input type="radio"
name="radSearchBy"
id="byNo"
data-bind:"checked:true" />
或:
<input type="radio"
name="radSearchBy"
id="byNo"
checked="checked" />
它不起作用。
只有在我写作的时候:
<input type="radio"
name="radSearchBy"
id="byNo"
**checked** />
是的,“checked”一词后面没有任何内容-它工作得很好。
但这是一个问题,因为我怎么做*绑定*
请尽快帮助我。不幸的是,答案有点复杂。单选按钮将可观察对象的值与单选按钮的值属性相匹配。在布尔型的情况下,不可能简单地处理,因为HTML将返回字符串形式的“true”或“false”,而不是布尔型 解决方案需要AFAIK计算可观测值: HTML
所以什么不起作用?您是否阅读了
选中的绑定的文档。因为它包含单选按钮的解决方案:,所以当且仅当参数值等于单选按钮节点的value属性时,KO将设置要检查的元素。因此,您的参数值应该是字符串。在上一个示例中,仅当视图模型的spamFlavor属性等于“almond”时,才选中value=“almond”单选按钮。
<input type="radio"
name="radSearchBy"
value="true"
data-bind="checked: value" />True
<input type="radio"
name="radSearchBy"
value="false"
data-bind="checked: value" />False
radSearchBy = ko.observable(true);
value = ko.computed({
read: function() { return radSearchBy.toString(); },
write: function(val) { radSearchBy(val === 'true'); }
});