当我尝试在即7 8 9
中从listbox asp.net用户控件中选择触发事件时$("select").trigger("change")
$("select").trigger(jQuery.Event("change", {target: $("select").get(0)}));
$("select").trigger(jQuery.Event("change", {srcElement: $("select").get(0)}));
预定义的.net脚本在预定义的函数中失败,无人可以更改
function ValidatorOnChange(event) {
if (!event) {
event = window.event;
}
Page_InvalidControlToBeFocused = null;
var targetedControl;
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
targetedControl = event.srcElement;
}
else {
targetedControl = event.target;
}
var vals;
if (typeof(targetedControl.Validators) != "undefined") {
vals = targetedControl.Validators;
}
else {
if (targetedControl.tagName.toLowerCase() == "label") {
targetedControl = document.getElementById(targetedControl.htmlFor);
vals = targetedControl.Validators;
}
}
var i;
for (i = 0; i < vals.length; i++) {
ValidatorValidate(vals[i], null, event);
}
ValidatorUpdateIsValid();
}
因为事件突然为空,所以无法找到event.target.Validators
或event.srcElement.Validators
。如何正确触发变更事件?
答案 0 :(得分:-1)
您应该可以使用$("select").change();
触发并使用$("select").change(function(){ //code here });
答案 1 :(得分:-1)
我认为如果你是菜鸟,你应该在写东西之前学习。但超过9000名微软的印第安人并不这么认为
var original_trigger = $.fn.trigger;
$.fn.trigger = function(type, data) {
if($.browser.msie) {
$(this).each(function() {
window.ValidatorOnChange({
target: this
});
});
return $(this).trigger("CustomChange", data);
}
return original_trigger.apply(this, arguments);
}
这也很糟糕。最好的方法是列出更改侦听器,删除indian的ValidatorOnChange侦听器并正确地重新绑定它。但不幸的是,我没有多少时间深入研究这个问题