Как связать атрибут имени радиокнопки в нокауте - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть этот код в моем ASP. Net проекте, который использует knockout. js:

<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, у меня есть другой * Файл 1025 *, который включает в себя этот файл, например:

<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, включая 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>

, однако, это не сработало. Есть идеи?

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Я нашел ответ:

<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>
0 голосов
/ 06 февраля 2020

Попробуйте сгруппировать вот так

<input type="radio" name="radiobutton[0]" value="a"><br>
<input type="radio" name="radiobutton[0]" value="b"><br>
<input type="radio" name="radiobutton[0]" value="c"><br>
<br>
<input type="radio" name="radiobutton[1]" value="x"><br>
<input type="radio" name="radiobutton[1]" value="y"><br>
<input type="radio" name="radiobutton[1]" value="z">


при отправке формы
radiobutton [0] = "a";
radiobutton [1] = "x";

ИЛИ

попробуйте jsfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...