2016-05-10 10 views
0

Unten ist mein JavaScript-Code. Wie Sie bemerkt haben, sind in meiner $("#register-form").validate die Regeln alle gleich, was required:true ist. da es nur das ist, wollte ich es in ihren Eingabefeldern stattdessen im HTML machen. Ich habe es versucht, deshalb löschte ich den gesamten Code innerhalb des Kommentars /* validation */ und fügte required in jedem ihrer Eingabefelder in meinem HTML-Formular hinzu, aber wenn ich das Formular absende, lädt es nur die Seite neu und gab mir die Nachrichten nicht, die ich erwartete in meinem function submitForm(). Aber wenn ich den gesamten Code benutze, sendet er das Formular und gibt mir die korrekte Warnmeldung. Wie kann ich die Regeln und Nachrichten hier ignorieren? Da ich bereits required in meinen HTML-Eingabefeldern habe?Wie können Validierungsregeln und Nachrichten in Ajax ignoriert werden, wenn ein Formular gesendet wird?

$('document').ready(function() 
{ 
    /* validation */ 
    $("#register-form").validate({ 
     rules: 
     { 
      firstname: { 
      required: true 
      }, 
      lastname: { 
      required: true 
      }, 
      username: { 
      required: true, 
      minlength: 8 
      }, 
      password: { 
      required: true, 
      minlength: 8 
      }, 
      password2: { 
      required: true, 
      equalTo: '#password' 
      }, 
      email: { 
      required: true, 
      email: true 
      }, 
      answer: { 
      required: true 
      }, 
     }, 
     messages: 
     { 
      firstname:"Please input your firstname.", 
      lastname:"Please input your lastname.",  
      answer:"Please input your answer.", 
      username:{ 
        required: "Please input your username.", 
        minlength: "Username must be atleast 8 characters" 
        }, 
      password:{ 
         required: "Please input your password", 
         minlength: "Password must be atleast 8 characters" 
        }, 
      email: "Please enter a valid email address", 
      password2:{ 
         required: "Please re-type your password", 
         equalTo: "Password do not match!" 
         } 
     }, 
     submitHandler: submitForm  
     }); 
     /* validation */ 

     /* form submit */ 
     function submitForm() 
     {   
       var data = $("#register-form").serialize(); 

       $.ajax({ 

       type : 'POST', 
       url : 'signup.php', 
       data : data, 
       beforeSend: function() 
       { 
        $("#error").fadeOut(); 
        }, 
       success : function(data) 
          {       
           if(data==2){ 

            $("#error").fadeIn(1000, function(){ 


              alert('Email is already taken.'); 
              document.getElementById ("email").focus(); 

            }); 

           } 
           else if(data==1){ 
            $("#error").fadeIn(1000, function(){ 


              alert('Username is already taken.'); 
              document.getElementById ("username").focus(); 
            }); 
           } 
           else if(data==3) 
           { 

            alert('Registration successfully submitted.'); 
            window.location='index.php'; 

           } 
           else{ 

            $("#error").fadeIn(1000, function(){ 

             $("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; '+data+' !</div>'); 

            $("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> &nbsp; Create Account'); 

            }); 

           } 
          } 
       }); 
       return false; 
     } 
     /* form submit */ 

}); 

Antwort

0

Nun, Sie werden mit einem Plugin Ihre Eingabe zu bestätigen und es ruft die submitHandler Funktion, wenn Tests bestehen. Also, wenn Sie diese Validierung loswerden wollen, müssen Sie Ihre submitForm Funktion an ein Senden Ereignis binden ...

$('document') 
    .ready(function() { 

    /* form submit */ 
    function submitForm() { 
     //do stuff and return false 
     return false; 
    } 
    /* form submit */ 
    $("#register-form").on("submit",submitForm);  
    }); 
+0

wow! das war schnell! Vielen vielen Dank, Sir! es funktionierte!!! : D – Louie

Verwandte Themen