asp.net – 使用jQuery以编程方式触发JavaScript中的事件
|
当IE中的用户触发事件时,将其设置为window.event对象.查看触发事件的唯一方法是通过访问window.event对象(据我所知) 如果事件以程序方式触发,则会在ASP.NET验证器中出现问题,例如通过jQuery触发事件时.在这种情况下,window.event对象存储最后一个用户触发的事件. 当onchange事件以编程方式触发具有连接到其的ASP.NET验证器的文本框时,验证将会中断,因为它正在查看触发最后一个事件的元素,这不是验证器的元素. 有人知道这个吗?这似乎是一个可以解决的问题,但从网上看,大多数人只是想办法忽略这个问题而不是解决问题. 要解释我在做什么具体: jQuery时间选择器通过创建一个隐藏的无序列表进行操作,该列表在单击文本框时显示.当单击其中一个列表项时,通过jQuery的change()方法通过编程方式对文本框启动“更改”事件. 因为事件的触发器是一个列表项,所以IE将列表项作为事件的源,而不是文本框. 只要文本框发生变化,我也不太在意这个ASP.NET验证器,只需要处理“change”事件,因此我的回传事件被调用为文本框.问题是验证器在IE中引发异常,阻止任何事件被触发. Firefox(和我假设其他浏览器)没有这个问题.只有IE由于不同的事件模型.有没有人遇到过这个,看到如何解决它? 我发现这个问题报告了其他几个地方,但他们没有提供任何解决方案: > jQuery’s forum,with the jQuery UI Datepicker and an ASP.NET Validator 解决方法我有同样的问题.使用此功能解决:jQuery.fn.extend({
fire: function(evttype){
el = this.get(0);
if (document.createEvent) {
var evt = document.createEvent('HTMLEvents');
evt.initEvent(evttype,false,false);
el.dispatchEvent(evt);
} else if (document.createEventObject) {
el.fireEvent('on' + evttype);
}
return this;
}
});
所以我的“onSelect”事件处理程序到datepicker看起来像: if ($.browser.msie) {
datepickerOptions = $.extend(datepickerOptions,{
onSelect: function(){
$(this).fire("change").blur();
}
});
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在asp.net中使用太多会话的缺点
- asp.net-mvc – 如何获取针对Razor View Engine的IntelliSe
- asp.net-mvc – 如何通过MVC Azure AD身份验证从AD获取角色
- 如果会话正在使用,单个asp.net用户可以一次使用多个请求吗?
- asp.net – asmx到WCF或Web API
- iis – 如何查看有多少用户在线?
- asp.net – 如何接收JSON作为MVC 5操作方法参数
- asp.net-mvc-3 – ASP.NET MVC 3将无法识别.cshtml视图文件
- asp.net – ELMAH登录SQL Server
- asp.net-mvc – 在多个表单上指定验证摘要
