当选择当前行时,KnockoutJS选中了单选按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当选择当前行时,KnockoutJS选中了单选按钮相关的知识,希望对你有一定的参考价值。
我有一个如下列表;
单击列表行编辑之一时,我想在用户表单中设置单选按钮。
我的单选按钮的html像;
<form data-bind="submit: saveUser" class="form-horizontal">
<div class="form-group">
<div class="col-md-10">
<input type="text" class="form-control" placeholder="Name" data-bind="value: currentUser().name" />
</div>
</div>
<!--Gender-->
<div class="form-group">
<div class="col-md-10" data-bind="foreach: genders">
<input type="radio" name="genderGroup" data-bind="checked: $root.radioGender, value: id" style="margin: 5px"/><span data-bind="text: name"></span>
</div>
</div>
<!--Role-->
<div class="form-group">
<div class="col-md-10">
<select class="form-control" data-bind="options: $root.roles, optionsText: 'name', optionsValue: 'id',value: currentUser().roleId, optionsCaption: 'Choose Component'"></select>
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<button type="submit" class="btn">Save User</button>
</div>
</div>
</form>
和单选按钮的点击绑定就像;
self.radioGender = function (gender) {
self.currentGender(gender);
if (gender !== self.selectedGender()) {
self.selectedGender(gender);
self.currentUser().genderId(gender.id());
}
return true;
};
最后,它是点击编辑按钮时的功能;
self.modifyUser = function (user) {
self.radioGender(self.currentGender());
self.currentUser(user);
}
我读了一些关于检查绑定但我没有解决问题。
答案
您不使用单击绑定与单选按钮。
ko.applyBindings({
radioGender: ko.observable(0),
genders: [
{id: 0, name: 'undefined'},
{id: 1, name: 'female'},
{id: 2, name: 'male'}
]
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="foreach: genders">
<label>
<input type="radio" data-bind="checked: $root.radioGender, value: id"/><span data-bind="text: name"></span>
</label>
</div>
<pre data-bind="text: ko.toJSON($root, null, 2)"></pre>
另一答案
您应该能够将单选按钮直接绑定到genderId
中的currentUser
observable:
data-bind="checked: $parent.currentUser().genderId, value: id"
以上是关于当选择当前行时,KnockoutJS选中了单选按钮的主要内容,如果未能解决你的问题,请参考以下文章
如果使用 PHP 选择了单选按钮(当前),如何在 Mysql 数据库中为出勤值添加 +1?