【问题标题】:jquery validation remove submitHandlerjquery 验证删除 submitHandler
【发布时间】:2009-07-02 15:50:19
【问题描述】:

一旦设置了 submitHandler 或 invalidHandler ,有什么方法可以删除它们?如果我提交我的表单并取消我的确认模式窗口,我的其他按钮将继承这些处理程序,而不是做他们应该做的事情。

我尝试在不同的地方取消绑定表单提交。以及尝试重新定义后退和保存按钮的验证,但这就像 submitHandler 总是首先被调用

<script type="text/javascript">


    $(document).ready(function() {


        $(window).keydown(function(event){

             document.getElementById('save').src = "/bttn-save.jpg";

        });


        $.validator.setDefaults({
             submitHandler: function() { 
                  tb_show("", "#TB_inline?height=400&width=600&inlineId=confirmblock", null);
             }
        });

        var errorimage = "<img src=\"error.png\" width=\"19\" height=\"19\" alt=\"error\" title=\"error\" style=\"vertical-align:top;margin-top:5px;\" />";

        $('#submit').click(function(e) {

            $('#promoForm').validate({
                submitHandler: function() { 
                  tb_show("", "#TB_inline?height=400&width=600&inlineId=confirmblock", null);
             },
                invalidHandler: function(e, validator) {
                 var errors = validator.numberOfInvalids();
         if (errors) {
              tb_show("", "#TB_inline?height=150&width=250&inlineId=errorblock", null);
         }  

        },
                errorElement: "span",
                rules: {
                    additionalinfo: "required"
                },
                messages: {
                    additionalinfo: errorimage
                } 

            });

            document.getElementById('td_info').innerHTML = document.getElementById('additionalinfo').value;

        });

        $('#back').click(function() {
            $("#promoForm").attr("action", "/step6/?action=back&email=%%=RequestParameter("email")=%%"); 
        });


        $('#save').click(function() {
            $("#promoForm").attr("action", "/step7/?action=save&email=%%=RequestParameter("email")=%%"); 
        });

        $('#confirm').click(function() {
            document.getElementById('promoForm').action = "http://pages.email.microsoftemail.com/thatsit/?email=%%=RequestParameter("email")=%%"
            document.getElementById('promoForm').submit(); 

        });

        $('#attach').click(function() {
            tb_show("", "#TB_inline?height=300&width=336&inlineId=uploadblock", null);
        });

    });
</script>

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    当它们存在模式时,我会从表单中删除所有事件。当我单击提交按钮时,我会重新添加所有验证。这需要针对我的具体情况修改 ThickBox 和 Validation JS。

    【讨论】:

      猜你喜欢
      • 2017-10-23
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多