在ASP.NET页面中使用jQuery来处理表单submit事件

在普通HTML网页中,我们可以像下面这样使用jQuery来捕获表单的submit事件,从而实现在表单提交前处理数据或者进行复杂的表单验证:


$(“form”).submit(function(){
//do something
return true;//or false
});

如果想要阻止表单提交(譬如在验证失败时),只需要在submit事件的处理程序中返回false即可。

这个功能非常方便,但是在ASP.net中使用的话,却没有任何效果,我们的submit事件处理程序根本不会触发,这是因为ASP.net的PostBack机制在捣乱,我们需要做的就是在ASP.net的__doPostBack函数之前插入自己的代码。

最终的解决方法如下:


addToPostBack = function(func) {
var old__doPostBack = __doPostBack;
if (typeof __doPostBack != 'function') {
__doPostBack = func;
} else {
__doPostBack = function(t, a) {
if (func(t, a)) old__doPostBack(t, a);
}
}
};

使用方法如下:


$(document).ready(function() {
addToPostBack(function(t,a) {
//do something
return true;//or false
});
});

参考:stackoverflow

One Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注