2016-04-13 3 views
2

Ich habe gerade meine Validierung zum Laufen gebracht. Wenn ich Submit drücke, erscheint ein Fehlerfeld mit dem Fehler bezüglich des Feldes (z. B. spezielle Zeichen). Wenn alle Felder korrekt sind, muss ich nun das Formular senden. Wie kann ich das machen? Wenn ich auf "submit" drücke, passiert nichts.Wie kann ich mein Formular einreichen, wenn die Validierung korrekt ist?

$('button#form-submit').click(function() { 
 
\t \t $.each($("form#all-details input,form#all-details select"),function(a,b){ 
 
\t \t \t if (typeof $(this).attr("data-type") != "undefined") { 
 
\t \t \t \t if ($(this).val()=="") { 
 
\t \t \t \t \t dialogWarning('Failure with form submit', '<p>Field <b>"'+$(this).prop("placeholder")+'"</b> must be populated</p>'); 
 
\t \t \t \t \t return false; 
 
\t \t \t \t }; 
 
\t \t \t \t if ($(this).attr("data-type")=="text") { 
 
\t \t \t \t \t if (/^[a-z0-9 ]+$/i.test($(this).val())===false) { 
 
\t \t \t \t \t \t dialogWarning('Failure with form submit', '<p>Please do not use special characters in field <b>"'+$(this).prop("placeholder")+'"</b></p>'); 
 
\t \t \t \t \t \t return false; 
 
\t \t \t \t \t }; 
 
\t \t \t \t } else if ($(this).attr("data-type")=="number") { 
 
\t \t \t \t \t if ($.isNumeric($(this).val())===false){ 
 
\t \t \t \t \t \t dialogWarning('Failure with form submit', '<p>Field <b>"'+$(this).prop("placeholder")+'"</b> must be a number only</p>'); 
 
\t \t \t \t \t \t return false; 
 
\t \t \t \t \t } 
 
\t \t \t \t } 
 
\t \t \t }; 
 
\t \t }); 
 
\t \t /* Submit form */ 
 
    });
<form id="all-details" onSubmit="return false;" action="add_Consignee.php" method="POST"> 
 
\t Consignee:</br> 
 
    <input type="text" name="Consignee" id="text" data-type="text" placeholder="Consignee"></br> 
 
\t Name:</br> 
 
    <input type="text" name="Name" data-type="text" placeholder="Name" ></br> 
 
    <input type="number" name="Forwarder_Contact_Number" data-type="number" placeholder="Forwarder Contact Number"></br> \t 
 
    Any Special Requirements?</br> 
 
    <input type="text" name="Special_Req" data-type="text" placeholder="Any Special Requirements"></br> </br> 
 
    <button id="form-submit">Submit</button> 
 
</form>

+0

** Hinweis: ** Ihre 'Rückkehr false' wird nur die aus brechen von' $ .each' und nicht der Submit-Handler. Sie könnten einfach ein '$ ('# all-details') .submit()' (außerhalb '$ .each') eingeben, um das Formular zu senden; Das ist nach einem Flag, das innerhalb jeder dieser Validierungen validiert und gesetzt wird. –

+0

'$ ('# alle-details'). Submit()' sollte den Trick machen, nachdem Ihre Validierung abgeschlossen ist. – Tricky12

+0

Das funktioniert nicht leid für Sie beide. –

Antwort

0

ich so tun würde:

$('button#form-submit').click(function() { 
var _errors = []; 
$.each($("form#all-details input,form#all-details select"),function(a,b){ 
    if (typeof $(this).attr("data-type") != "undefined") { 
     if ($(this).val()=="") { 
      _errors.push('<p>Field <b>"'+$(this).prop("placeholder")+'"</b> must be populated</p>'); 
     }; 
     if ($(this).attr("data-type")=="text") { 
      if (/^[a-z0-9 ]+$/i.test($(this).val())===false) { 
       _errors.push('<p>Please do not use special characters in field <b>"'+$(this).prop("placeholder")+'"</b></p>'); 
       _errors++; 
      }; 
     } else if ($(this).attr("data-type")=="number") { 
      if ($.isNumeric($(this).val())===false){ 
       _errors.push('<p>Field <b>"'+$(this).prop("placeholder")+'"</b> must be a number only</p>'); 
       _errors++; 
      } 
     } 
    }; 
}); 
if (_errors.length > 0) { 
    dialogWarning('Failure with form submit', _errors.join(' '); 
    return false; 
} else { 
    $(this).submit(); 
} 
/* Submit form */ 
}); 

diese Weise ist es auf einmal mehrere Fehler behandeln werden, und Sie werden mehr Kontrolle über das Click-Ereignis haben.

+0

Sie haben sich von dialogWarning das meine Validierungsfehler Pop-up, die ich brauche loswerden –

0

Dies sollte funktionieren, wenn der Button type = "submit" hinzugefügt wurde.

0

Setzen Sie Ihre Validierung in einer Funktion, zB

function validate() { 
// validation code 
} 

Dann rufen Sie es in Ihrer Form: onSubmit="validate()"

Verwandte Themen