温馨提示:本文翻译自stackoverflow.com,查看原文请点击:html - How to bind name attribute of a radio button in knockout
asp.net html knockout.js

html - 如何在淘汰赛中绑定单选按钮的名称属性

发布于 2020-04-21 22:42:57

我在我的ASP.Net项目中使用了代码,该代码正在使用剔除:

<div>
     <input type="radio" name="hearingAidConditionGroup" value="Yes" data-bind="checked: condition">&nbsp;<label class="YesNo">&nbsp;Yes&nbsp;</label>
     <input type="radio" name="hearingAidConditionGroup" value="No" data-bind="checked: condition">&nbsp;<label class="YesNo">&nbsp;No&nbsp;</label>
</div>

它存储在一个名为的文件中a.cshtml,我还有另一个html文件,其中包括:

<div data-bind="with: testConditions()[0]">
    <h4>Test conditions</h4>
    @Html.Partial("~/a.cshtml")
</div>
<div data-bind="with: testConditions()[1]">
    <h4>Second test conditions</h4>
    @Html.Partial("~/a.cshtml")
</div>

在我的js文件中,我有:

this.testConditions = ko.observableArray([
        { condition: "Yes" },
        { condition: "Yes" }
    ]);

所以问题是我如何区分单选按钮,就像上面的代码一样,表单中的所有单选按钮都具有相同的名称,并且基本上在div上选择其中一个(包括div)testConditions()[0]会影响div中的另一个(包括testConditions()[1]反之亦然)。

我正在考虑在数组中添加第二个属性,例如:

this.testConditions = ko.observableArray([
            { condition: "Yes", itemname: "group1" },
            { condition: "Yes", itemname: "group2" }
        ]);

并在html中使用它,例如:

 <div>
     <input type="radio" value="Yes" data-bind="checked: condition, name: itemname">&nbsp;<label class="YesNo">&nbsp;Yes&nbsp;</label>
     <input type="radio" value="No" data-bind="checked: condition, name: itemname">&nbsp;<label class="YesNo">&nbsp;No&nbsp;</label>
 </div>

但是,它没有用。有任何想法吗?

查看更多

提问者
Steve Shahbazi
被浏览
26
Steve Shahbazi 2020-02-06 13:02

我找到了答案:

<div>
 <input type="radio" value="Yes" data-bind="checked: condition, attr: { 'name': itemname}">&nbsp;<label class="YesNo">&nbsp;Yes&nbsp;</label>
 <input type="radio" value="No" data-bind="checked: condition, attr: { 'name': itemname}">&nbsp;<label class="YesNo">&nbsp;No&nbsp;</label>
</div>