【发布时间】:2017-01-09 21:10:07
【问题描述】:
我想向点击处理程序发送“真/假”值,具体取决于复选框是否被选中。
- 在检查时,它应该发送一个值为“true”的第三个参数 (isChecked)。
- 取消选中时,它应该发送一个值为“false”的第三个参数 (isChecked)。
我确信这真的很容易,但我很难弄清楚。 这是输入元素:
<input class="cards-view--item-checkbox pull-right" type="checkbox"
data-bind="value: universalParcelId, checked: $parent.isChecked, checkedValue: true,
click: function(data, event, isChecked) {
return $root.addUPIDtoArray(data, event, $parent.isChecked()) }">
点击处理程序:
addUPIDtoArray: function (data, event, isChecked) {
var self = this;
self.isChecked = ko.observable();
// If checked
if(isChecked()) {
self.upIDArray.push(data.universalParcelId);
self.upIDWithIndexArray.push({
universalParcelID: data.universalParcelId,
searchResultIndex: data.searchResultIndex
});
// If unchecked
} else if(!isChecked()) {
// remove from array
}
return true; // allow the default "click" action, which is checking the box with a "check"
},
我以为我可以使用“event”参数,但由于某种原因,它作为 jQuery.event 传递,而不是常规的 DOM 事件。所以我决定使用第三个参数。但它不能像这样工作:给出错误$parent.isChecked is not a function
有什么想法吗?
【问题讨论】:
标签: javascript model-view-controller mvvm knockout.js data-binding