在普通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
});
});
Chai is Coding… » Blog Archive » 为ASP.NET页面提供统一的提交等待对话框
[…] 所以我们最好还是能够统一把页面中的Postback事件接管过来,参考我之前写过的一篇《在ASP.NET页面中使用jQuery来处理表单submit事件》,可以轻松的写出下面的代码来在Postback过程中做一些其他事情。 […]