单选按钮选中绑定 HTML5,杜兰达尔
radio button checked binding html5, durandal
即使我在这个网站上看到很多类似的问题,也没有人回答我的问题。所以恳求你,不要生我的气,我再讨论这个话题。我在杜兰达尔项目中工作,我有带有javascript文件的html页面。我在其中一个页面中有两个单选按钮。我希望他们的"checked"属性绑定到后面视图模型中的变量。看起来很简单...但事实并非如此!我尝试了两种方法,其中任何一种方法都没有成功:
第一种方式:在 HTML 中:
<input type="radio"
name="radSearchBy"
id="byNo"
data-bind:"checked:isId" />
in javascript:
isId: ko.observable(true)
第二种方式:在 HTML 中:
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** />
是的,后面没有任何内容的"检查"字 - 效果很好。
但这是问题,因为我怎么能做到*绑定?*
请尽快帮助我。
不幸的是,答案有点复杂。单选按钮将可观察量的值与单选按钮的值属性匹配。在布尔情况下,不可能仅仅因为 HTML 将返回"true"或"false"作为字符串,而不是作为布尔值。
该解决方案需要 AFAIK 计算的可观察量:
.HTML
<input type="radio"
name="radSearchBy"
value="true"
data-bind="checked: value" />True
<input type="radio"
name="radSearchBy"
value="false"
data-bind="checked: value" />False
JavaScript
radSearchBy = ko.observable(true);
value = ko.computed({
read: function() { return radSearchBy.toString(); },
write: function(val) { radSearchBy(val === 'true'); }
});
相关文章:
- 杜兰达尔默认路线有效,其他什么都没有
- 击倒杜兰达尔这个..不是闹着玩
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 如何下载杜兰达尔示例项目(Hello World)的源代码
- 杜兰达尔单调问题
- 未能加载路由模块requirejs?杜兰达尔虫
- 如何创建可重复使用的杜兰达尔小部件
- 杜兰达尔 2.0.1,最初加载所有文件
- 挖空映射对象未由杜兰达尔视图模型返回
- 杜兰达尔.js文件准备好了
- 如何避免杜兰达尔 2 中的全局变量
- 杜兰达尔/要求:模块加载和执行
- Ko未定义错误杜兰达尔
- 杜兰达尔 - 在大纲详细信息示例中调用了两次激活
- 小部件中的杜兰达尔事件
- 杜兰达尔 2.0.1,尝试激活一次又一次地被调用
- 在带有敲除和杜兰达尔的揭示原型模式中对“这个”的混淆
- 杜兰达尔2.0“路线”
- 杜兰达尔淘汰赛点击事件
- 单选按钮选中绑定 HTML5,杜兰达尔