2016-04-30 10 views
0

Ich versuche herauszufinden, warum nicht verhindert, dass mein Formular übermittelt wird? Wenn der Submit-Button gedrückt wird, wird das Formular korrekt gepostet, scheint aber den Validierungsfehler zu ignorieren (Dieses Feld ist erforderlich), selbst wenn das Eingabefeld leer gelassen wird.Warum sendet mein Formular die Validierung und ignoriert sie?

Die Form

$(document).ready(function() { 
 
    $("#message").hide(); 
 

 
    //Define your validation rules. 
 
    $(function() { 
 
    $("#myform").validate({ 
 

 
    }); 
 
    $("#submitButtonId").on("click", function(e) { 
 
     var formdata = $("#myform").serialize(); 
 
     //Post form data 
 
     $.post('php_includes/simple_insert.php', formdata, function(data) { 
 
     //Process post response 
 
     $("#message").html(data); 
 
     $("#message").fadeIn(500); 
 
     $("#message").fadeOut(500); 
 
     }); 
 

 
     //Reset Form 
 
     $('#myform')[0].reset(); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> 
 

 
<form class="form-inline" action="" id="myform" method="post"> 
 

 
    <!-- Text input--> 
 
    <div class="form-group"> 
 
    <label class="col-md-4 control-label" for="bill_cost"></label> 
 
    <div class="col-md-8"> 
 
     <input id="bill_cost" name="bill_cost" type="text" placeholder="Bill Cost" class="form-control input-lg" required> 
 

 
    </div> 
 
    </div> 
 

 
    <!-- Button --> 
 
    <div class="form-group"> 
 
    <label class="col-md-4 control-label" for="submit1"></label> 
 
    <div class="col-md-4"> 
 
     <button type="submit" id="submitButtonId" name="submit1" class="btn btn-primary btn-xl">Submit</button> 
 
    </div> 
 
    </div> 
 
</form>

+0

Das Ereignis "Klicken auf den Submit-Button" passiert * bevor * das "Formular absenden" -Ereignis und es ist das "Formular absenden" -Ereignis, das den Validierungscode hat. Da Sie die "Post" -Anfrage im Ereignis "Klicken Sie auf die Übergabeschaltfläche" senden, wird die Validierung erst dann ausgeführt. –

Antwort

3
diese

Versuchen, verwenden submitHandler andere Dinge für eine gültige Form zu tun:

$("#myform").validate({ 
     submitHandler : function() { 
      var formdata = $("#myform").serialize(); 
      //Post form data 
      $.post('php_includes/simple_insert.php', formdata, function(data){ 
      //Process post response 
      $("#message").html(data); 
      $("#message").fadeIn(500); 
      $("#message").fadeOut(500); 
      }); 

      //Reset Form 
      $('#myform')[0].reset(); 

      } 
     }); 
+0

Verdammt, Sie schlagen mich einfach –

+0

Dies erklärt nicht, warum OP-Code nicht funktioniert;) –

+0

, denn obwohl Validierungen vorhanden sind, hat er nicht überprüft, ob Formular gültig ist oder nicht zum Senden von AJAX - als Benutzer klicken Button Ajax wird nur ausgeführt, so dass mit submitHandler können wir überprüfen, ob wenn gültig dann nur senden Ajax Anfrage –

-1

Entfernen eines Erforderliche Tag in Rechnung Kosten Text box.then Sie überprüfen, dass die Validierung ignoriert wird

Verwandte Themen