两天前,我问了问题"radio button checked binding html5, durandal"。我接受了一个看起来很好的答案,但它不起作用。
我只想添加评论并告诉它不起作用;但是为了添加评论,我需要50个代表...
如果你真的想帮助我,你不想回答我在你的项目中工作的东西,而不是在我的项目中,你必须先阅读我之前的问题,这样你就会知道所有的我已经尝试过的选项不起作用。
所以我没有别的选择,但写了新的问题......请不要生气。
我会详细介绍我的项目,可能会帮助你帮助我...... 我在DURANDAL项目工作。 我有两个无线电按钮,称为“searchBy”。第一个按钮ID是:“byId”。第二个按钮id是:“byName”。用户必须选择其中一个,我必须知道他选择了什么。
我尝试了在评论中附加的文档中编写的代码,但它不起作用。
以下代码:
html代码:
<tr>
<td>
<label for="byId" innerHTML:"search by id" />
<input type="radio"
name="radSearchBy"
id="byId"
value="RadioById"
data-bind="checked:computedIsId" />
</td>
</tr>
<tr>
<td>
<label for="byName" innerHTML:"search by name" />
<input type="radio"
name="radSearchBy"
value="RadioByName"
id="byName"
data-bind="checked:computedIsId"
/>
</td>
</tr>
javascript背后:
computedIsId:ko.observable("searchById"),
它不起作用!!!
我尝试了第一个答案中编写的代码,它没有......
javascript背后:
radSearchBy = ko.observable(true);
value = ko.computed({
read: function() { return radSearchBy.toString(); },
write: function(val) { radSearchBy(val === 'true'); }
});
html代码:
<tr>
<td>
<label for="byId" innerHTML:"search by id" />
<input type="radio"
name="radSearchBy"
id="byId"
data-bind="value" />
</td>
</tr>
<tr>
<td>
<label for="byName" innerHTML:"search by name" />
<input type="radio"
name="radSearchBy"
data-bind="value"
id="byName"
/>
</td>
</tr>
我还试着写第二个按钮“databind =”checked:!value()“”,或者在第一个按钮“()”中写下“值”之后的其他内容......没什么帮助。
你可以帮帮我吗?答案 0 :(得分:0)
我的朋友帮助了我,如果你想学习答案 - 这里是:
您必须添加名为“value”的单选按钮属性。 现在,您已将“已检查”属性绑定到后面的e属性。 后面的属性将是可观察的。将其初始化为你在无线电广告的有利“价值”中所汲取的一个字符串。 这是特别的淘汰赛功能。 当您更改检查时,后面的属性将接受当前检查的readio的“value”属性的字符串。
这是一个简单的例子:
< input type="radio"
name="radSearchBy"
value="byNo"
data-bind="checked: searchBy" />
<label for="byNo" data-bind="text: global.dict()[376]" />
<input type="radio"
name="radSearchBy"
value="byName"
data-bind="checked: searchBy" />
背后的javascript: var vm = {
searchBy: ko.observable("byno"),
}
return vm;
它比你想象的更简单......
当你想知道是否检查了无线电时,你已经写了“
function isByNo(){
return vm.searchBy() == "byNo" ? true : false;
}
当您想要检查您必须编写的代码中的任何按钮时:
vm.searchBy("byNo");