2017-04-19 4 views
1

Ich habe eine benutzerdefinierte Methode für die JQuery Validierung Plugin hinzugefügt, und nach dem Durchsuchen vieler Fragen hier und auf anderen Seiten kann ich es einfach nicht herausfinden.Benutzerdefinierte Methode für JQuery Validierung Plugin funktioniert nicht

Ich bekomme eine Fehlermeldung, wenn nicht die benutzerdefinierte Telefonnummer Feld eingeben, aber wenn ich zum Beispiel den Buchstaben "A" eingeben das Formular geht durch.

Wie kann ich das beheben?

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <meta charset="ISO-8859-1"> 
 
\t \t <title>Insert title here</title> 
 
\t </head> 
 
\t <body> 
 
\t \t <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.26/jquery.form-validator.min.js"></script> 
 
\t \t <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 
\t \t <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.26/jquery.form-validator.min.js"></script> 
 

 
\t \t <form action="" id="registration-form"> 
 
\t \t \t <p> 
 
\t \t \t  Firstname 
 
\t \t \t  <input name="firstname" data-validation="required" 
 
\t \t \t \t \t data-validation-length="1-30" 
 
\t \t \t \t \t data-validation-error-msg="Firstname has to be an alphabetical value (1-30 chars)"> 
 
\t \t \t </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Prefix 
 
\t \t \t  <input name="prefix" data-validation="required" 
 
\t \t \t \t \t data-validation-length="1-20" 
 
\t \t \t \t \t data-validation-error-msg="Prefix has to be an alphabetical value (1-20 chars)"> 
 
\t \t \t </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Lastname 
 
\t \t \t  <input name="lastname" data-validation="required" 
 
\t \t \t \t \t data-validation-length="1-50" 
 
\t \t \t \t \t data-validation-error-msg="Lastname has to be an alphabetical value (1-50 chars)"> 
 
\t \t \t </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Company 
 
\t \t \t  <input name="company" data-validation="required" 
 
\t \t \t \t \t data-validation-length="1-50" 
 
\t \t \t \t \t data-validation-error-msg="Company has to be an alphabetical value (1-50 chars)"> 
 
\t \t \t </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Phonenumber 
 
\t \t \t \t <input name="phonenumber" data-validation="required phonenumber" 
 
\t \t \t \t \t data-validation-error-msg="This is not a valid phonenumber"> 
 
\t \t \t </p> 
 
\t \t 
 
\t \t  <p> 
 
\t \t \t  E-mail 
 
\t \t \t  <input name="mail" data-validation="email" 
 
\t \t \t \t \t data-validation-error-msg="E-mail has to be a valid email"> 
 
\t \t \t </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  <input value="Validate" type="submit"> 
 
\t \t \t  <input value="Reset form" type="reset"> 
 
\t \t \t </p> 
 
\t \t </form> 
 
\t \t 
 
\t \t <script> 
 
\t \t \t $(document).ready(function() { 
 
\t \t \t \t $.validator.addMethod('phonenumber', function (value, element) { 
 
\t \t \t \t  return this.optional(element) || /^(\+91-|\+91|0)?\d{10}$/.test(value); 
 
\t \t \t \t }, "Please enter a valid phone number"); 
 
\t \t \t }); 
 
\t \t \t 
 
\t \t \t $.validate({ 
 
\t \t \t 
 
\t \t \t }); 
 
\t \t </script> 
 
\t </body> 
 
</html>

+0

Sie regex nicht gut funktioniert. In diesem Beitrag http://stackoverflow.com/questions/19840301/jquery-to-validate-phone-number haben Sie mehrere Beispiele. Versuche sie zu benutzen. Viel Glück, Junge! – Antonio682

Antwort

0

Code unten sehen. Ich ändern, um es einfacher zu bedienen:

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <meta charset="ISO-8859-1"> 
 
\t \t <title>Insert title here</title> 
 
\t </head> 
 
\t <body> 
 
\t \t <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
 
\t \t <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script> 
 

 
\t \t <form action="" id="registration-form"> 
 
\t \t \t <p> 
 
\t \t \t  Firstname 
 
\t \t \t  <input name="firstname" class="required validate[required]" minlength="1" manlength="30" > 
 
\t \t \t </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Prefix 
 
\t \t \t  <input name="prefix" class="required validate[required]" minlength="1" manlength="20"> </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Lastname 
 
\t \t \t  <input name="lastname" class="required validate[required]" minlength="1" manlength="50"> </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Company 
 
\t \t \t  <input name="company" class="required validate[required]" minlength="1" manlength="50"> </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  Phonenumber 
 
\t \t \t \t <input name="phonenumber" class="required validate[required] phonenumber"> </p> 
 
\t \t 
 
\t \t  <p> 
 
\t \t \t  E-mail 
 
\t \t \t  <input name="mail" class="email"> </p> 
 
\t \t 
 
\t \t \t <p> 
 
\t \t \t  <input value="Validate" type="submit"> 
 
\t \t \t  <input value="Reset form" type="reset"> 
 
\t \t \t </p> 
 
\t \t </form> 
 
\t \t <script> 
 
\t \t \t 
 
\t \t \t $(document).ready(function() { 
 
\t \t \t \t $.validator.addMethod('phonenumber', function (value, element) { 
 
\t \t \t \t  return this.optional(element) || /^(\+91-|\+91|0)?\d{10}$/.test(value); 
 
\t \t \t \t }, "Please enter a valid phone number"); 
 

 
\t \t \t \t $(document).on('submit', 'form#registration-form', function(event) { 
 
\t \t \t \t \t if(!$(this).valid()){ 
 
\t \t \t \t \t \t return false; 
 
\t \t \t \t \t } 
 
\t \t \t \t }); 
 
\t \t \t }); 
 
\t \t </script> 
 
\t </body> 
 
</html>

+0

Danke! Der Telefonnummernteil arbeitet jetzt einschließlich der Fehlermeldung. Muss ich auch eigene Methoden erstellen, um Fehlermeldungen für Vornamen usw. zu erhalten, oder gibt es eine Alternative zu meiner vorherigen "Datenvalidierung-Fehler-Meldung", die Sie kennen? – Kevin

+0

Sie müssen keine benutzerdefinierten Methoden für jedes Eingabefeld für verschiedene Aspekte hinzufügen. Die meisten von ihnen sind in der Bibliothek enthalten und nur durch einen Klassennamen aktiv. Als Beispiel, um das Feld erforderlich zu machen, müssen wir nur die Klasse 'required' in die Eingabe einfügen. Gleiches für "E-Mail". Sie können die Liste der Klassen hier finden. https://jqueryvalidation.org/documentation/ – Mufi

+0

Für eine benutzerdefinierte Nachricht an jedes Eingabefeld können Sie eine benutzerdefinierte Fehlermeldung für jedes in der einzelnen Validierungsmethode angeben. Diese Antwort hilft Ihnen, es zu setzen. http://stackoverflow.com/questions/2457032/jquery-validation-change-default-error-message/2457053 – Mufi

Verwandte Themen