kendo 文本更改事件的 dropDownList onclick 未触发
kendo dropDownList onclick of text change event not firing
我正在使用 kendo UI。
我有一个复选框的下拉列表。
onchange 事件在用户点击复选框时触发。但是当用户点击文本时事件没有触发。
在此先感谢您的帮助!
-赛.
<script type="text/x-kendo-template" id="CheckboxTemplate">
<li unselectable="on" class="k-item nowrap check-item">
<input type="checkbox" name="#= text #" value="#= value #" class="check-input showcolname" checked />
<span>#= text #</span>
</li>
</script>
function populateDropdown() {
dropdown = $("#dropDownList").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
template: $("#CheckboxTemplate").html(),
dataSource: displayColumns,
placeholder: "Select...",
select: function(e) {
e.preventDefault();
}
}).data("kendoDropDownList");
dropdown.list.width(250);
dropdown.list.find(".check-input,.check-item").bind("click", function(e) {
var $item = $(this);
var $input;
if($item.hasClass("check-item")) {
// Text was clicked
$input = $item.children(".check-input");
$input.prop("checked", !$input.is(':checked'));
} else {
// Checkbox was clicked
$input = $item;
}
// Check all clicked?
if($input.val() == "") dropdown.list.find(".check-input").prop("checked", $input.is(':checked'));
syncColumns();
e.stopImmediatePropagation();
});
}
函数 syncColumns(){
$('.showcolname').each(function() {
$(this).change(function(event) {
event.preventDefault();
var val = $(this).val();
var url = "${rootContext}${MyUrl}/"+val+"/"+this.checked;
var beforeSendCallBack = function() {};
var successCallback = function(data) {};
submitPost(url, beforeSendCallBack, successCallback, '','');
});
});
}
然后您使用 Jquery 道具方法输入更改检查 属性 不会触发更改事件。所以你必须使用 Jquery 触发器手动触发它。有关详细信息,请查看此 question。另外你必须在触发之前注册事件绑定,或者使用 Jquery on.
我正在使用 kendo UI。 我有一个复选框的下拉列表。 onchange 事件在用户点击复选框时触发。但是当用户点击文本时事件没有触发。
在此先感谢您的帮助! -赛.
<script type="text/x-kendo-template" id="CheckboxTemplate">
<li unselectable="on" class="k-item nowrap check-item">
<input type="checkbox" name="#= text #" value="#= value #" class="check-input showcolname" checked />
<span>#= text #</span>
</li>
</script>
function populateDropdown() {
dropdown = $("#dropDownList").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
template: $("#CheckboxTemplate").html(),
dataSource: displayColumns,
placeholder: "Select...",
select: function(e) {
e.preventDefault();
}
}).data("kendoDropDownList");
dropdown.list.width(250);
dropdown.list.find(".check-input,.check-item").bind("click", function(e) {
var $item = $(this);
var $input;
if($item.hasClass("check-item")) {
// Text was clicked
$input = $item.children(".check-input");
$input.prop("checked", !$input.is(':checked'));
} else {
// Checkbox was clicked
$input = $item;
}
// Check all clicked?
if($input.val() == "") dropdown.list.find(".check-input").prop("checked", $input.is(':checked'));
syncColumns();
e.stopImmediatePropagation();
});
}
函数 syncColumns(){
$('.showcolname').each(function() {
$(this).change(function(event) {
event.preventDefault();
var val = $(this).val();
var url = "${rootContext}${MyUrl}/"+val+"/"+this.checked;
var beforeSendCallBack = function() {};
var successCallback = function(data) {};
submitPost(url, beforeSendCallBack, successCallback, '','');
});
});
}
然后您使用 Jquery 道具方法输入更改检查 属性 不会触发更改事件。所以你必须使用 Jquery 触发器手动触发它。有关详细信息,请查看此 question。另外你必须在触发之前注册事件绑定,或者使用 Jquery on.