我有一个复选框数组,我想将它用作数组,例如在一组选项中设置单个iitems并检索该组的值。 对于一个复选框,我能够设置它并获得click事件,作为一个数组我什么都得不到。
HTML code:
<div class="k-group" id="chkbox-options">
<label>
Red
<input type="checkbox" id="chk1" value="Red" data-bind="checked: colors" />
Green
<input type="checkbox" id="chk2" value="Green" data-bind="checked: colors" />
Blue
<input type="checkbox" id="chk3" value="Blue" data-bind="checked: colors" />
</label>
</div>
Javascript代码:
<script type="text/javascript">
var colordata = null;
$(document).ready(function () {
colordata = kendo.observable({
colors: ["Blue"]
});
kendo.bind($("chkbox-options"), colordata);
$("#dump-values").click(function () {
kendoConsole.log(colordata.colors.toString());
});
$("#chk1").click(function () {
kendoConsole.log("click chk1");
if (this.checked) {
kendoConsole.log("click chk1 true");
}
});
});
</script>
我可以在单个复选框上获取点击事件,而我无法在字段var colordata中的kendo.observable
中设置复选框的值。
我在kendo文档中看到了一个类似的例子,但是我无法使它工作。
感谢您的帮助
马
答案 0 :(得分:1)
几点: 1.在kendo.bind中,缺少div id chkbox-options 2.您需要读取可观察对象的change事件中更改的颜色。更改发生在click事件之后,因此在单击事件内部,您始终可以看到旧数据。
我已经纠正了你的jsFiddle:http://jsfiddle.net/whizkid747/rPjjJ/4/
var colordata = null;
$(document).ready(function () {
colordata = kendo.observable({
colors: ["Blue"]
});
kendo.bind($("#chkbox-options"), colordata);
colordata.bind("change", function(e) {
var selectedColors = '';
$.each(colordata.colors, function(key, value){
selectedColors = selectedColors + " " + value;
});
if(colordata.colors.length == 0){
console.log('no colors selected');
}else{
console.log('selected colors:' + selectedColors);
}
});
});