2009-07-02 3 views
0

Gibt es eine Möglichkeit, den submitHandler oder invalidHandler zu entfernen, sobald sie festgelegt sind? Wenn ich mein Formular absende und mein Bestätigungsmodal-Fenster abbricht, übernehmen meine anderen Schaltflächen diese Handler und tun nicht, was sie tun sollen.jquery Validierung entfernen submitHandler

Ich habe versucht, das Formular an verschiedenen Orten zu lösen. Neben versuchen, die Validierung für den Rücken und speichern Tasten neu zu definieren, aber es ist wie die submitHandler immer zuerst

<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> 

Antwort

0

Wenn sie existieren, um die modale genannt wird, ich alle Ereignisse aus der Form zu entfernen. Wenn ich auf die Schaltfläche "Senden" klicke, füge ich alle meine Validierung wieder hinzu. Dies erforderte die Änderung der ThickBox und der Validation JS für meinen speziellen Fall.