抑制.net的updatepanel提交事件处理程序

时间:2011-02-14 14:58:30

标签: javascript .net ajax events updatepanel

我正在表单上执行一些自定义js验证,通过提交表单

触发
    $("form").submit(function (e) {
        var validates = true;
        // validation code goes in here
        if (!validates) {
            e.preventDefault();
            e.stopImmediatePropagation();
            return false;
        }
    })

我所包含的用于停止提交事件的所有行都不会阻止.NET控件回发。是否有某种方法(使用js或在updatepanel控件中设置属性)停止回发?

3 个答案:

答案 0 :(得分:2)

我发现可靠的方法是使用Sys.WebForms.PageRequestManager类:

Sys.WebForms.PageRequestManager.getInstance()
    .add_initializeRequest(function (sender, args) {
        if (!function_to_check_form_is_valid(sender, args))
            args.set_cancel(true);
        }
   });

答案 1 :(得分:0)

最简单的方法是捕获客户端点击提交表单的内容。

答案 2 :(得分:0)

您是否有任何理由进行客户端验证而不是服务器端?如果是我,我会写一个自定义的asp.net验证器,然后在发送更新之前检查该验证器。更新面板仍然会回发,但只要您检查验证器,就不会创建任何内容。