剑道UI "checked"外部模板中最后一个单选按钮的MVVM绑定不工作
Kendo UI "checked" MVVM binding not working for last radio button in external template
我有一个非常有趣又令人烦恼的问题要解决。我正在使用MVVM剑道UI模式进行项目,我有data-bind: checked
单选按钮的问题。
当我使用data-bind
将一些变量从VM绑定到视图时,它被成功地绑定到所有单选按钮,除了最后一个。因此,每当我将无线电值更改为最后一个时,VM中的变量不会更改,因此不会调用此变量的附加侦听器。
<div data-role="modalview"
class="dialogStyle width60em"
data-hide="kitkat.widgets.zivotniPojisteniDialog.hide"
data-model="kitkat.widgets.zivotniPojisteniDialog"
data-init="kitkat.widgets.zivotniPojisteniDialog.init">
<div class="dialogContainer kitkat-switches">
<form id="form">
<div data-role="scroller" class="scroller">
<div class="row">
<span data-bind="source: nameSource" data-template="name-tmpl"></span>
<script type="text/x-kendo-template" id="name-tmpl">
<input type="radio" name="firstname" value="#= idx#" data-bind="checked: nameSelectedValue"
id="firstname#= idx#" />
<label class="black" for="firstname#= idx#">#= name#</label>
</script>
</div>
<div id="tables">
<!-- example tables, originally created by nested external templates -->
<table id="table0" data-bind="visible: firstnameChanged">
<tr class="row">
<td class="firstColumn"></td>
<td class="secondColumn"></td>
<td class="thirdColumn"></td>
</tr>
</table>
<table id="table1" data-bind="visible: firstnameChanged">
<tr class="row">
<td class="firstColumn"></td>
<td class="secondColumn"></td>
<td class="thirdColumn"></td>
</tr>
</table>
<!-- - - - - - - -->
</div>
</div>
</form>
</div>
</div>
JS viewmodel:
<script>
var _dialog = kendo.observable({
// hardcoded data for this example
nameSource: [
{
"idx" : 0,
"name" : "John"
},
{
"idx" : 1,
"name" : "George"
}
],
nameSelectedValue: null, // problematic variable
init: function(e) {
var self = _dialog;
self._view = e.sender;
self._view.shim.popup.options.animation.open.effects = "slideIn:down";
$(self._view.element).closest('.km-shim').addClass('dialogs-shim');
self.initView("form");
self.bind("closed", function() {self.hide();});
},
show: function(jeProDeti) {
var self = _dialog;
self._view.open();
},
hide: function() {
},
cancel: function() {
kitkat.touch( function() {
var self = _dialog;
self.trigger('done');
self._view.close();
self.trigger('closed');
});
},
firstnameChanged: function(e) {
var self = _dialog;
var idx = e.idx;
var selectedIdx = parseInt(self.get("nameSelectedValue")); // getter for registering "nameSelectedValue" change
if(idx === selectedIdx) { // table is visible if corresponding radio value is selected
return true;
}
return false; // otherwise it is invisible
}
});
</script>
谢谢你的建议
这个问题对我来说有点奇怪。我把每个无线电输入包装成自己的<span>
,它工作
相关文章:
- 多个单选按钮组相互干扰
- 是否可以禁用jquery中的单个单选按钮
- Javascript:无法获取变量中的单选按钮值
- 通过ajax到php文件获取单选按钮值
- 互斥单选按钮和相应的输入字段
- 用于选择MVC3中单选按钮值的JavaScript
- 如何获取单选按钮的多个实例的选定单选按钮值
- react testUtils模拟点击单选按钮而不触发onchange
- 当选择组中的单选按钮时,jQuery addClass
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- 客户端单选按钮列表验证
- Javascript:图像与单选按钮的值不匹配
- 如何在Javascript中将单选按钮值保存到cookie中
- 单击时如何更改单选按钮的CSS
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- 注入Javascript以选择具有指定值的所有单选按钮
- 复选框/单选按钮-添加所选项目的总价
- 如何使用单选按钮设置cookie值
- Html按钮点击事件未触发单选按钮
- 得到"标签“;标签在Internet Explorer 6中工作(用于单选按钮)