Ich habe einen Validierungscode für mein Kontaktformular geschrieben. Während der Ausführung markiert der Code eine ungültige Eingabe und zeigt das (Fehler-) Label an.Kleiner Fehler bei der Validierung meines Kontaktformulars. Die E-Mail-Validierung wird mit dem Rest meines Codes verwickelt
Während die Validierung ordnungsgemäß funktioniert, zeigt die E-Mail-Eingabe das Etikett falsch an. Code unten:
$(".cform").on("submit" , function(e){
var hasError = false;
$(".inputValidation").each(function(){
var $this = $(this);
var $label = $("label[for='"+$(this).attr("id")+"']");
var validateEmail = function(elementValue){
var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
return emailPattern.test(elementValue);
}
var value = $('#email').val();
var valid = validateEmail(value);
if($this.val() == ""){
hasError = true;
$this.addClass("inputError");
$label.addClass("label_error");
e.preventDefault();
}if(!valid){
$("#email").addClass("inputError");
$label.addClass("label_error");
e.preventDefault();
}if($this.val() != ""){
$this.removeClass("inputError");
$label.removeClass("label_error");
}else{
return true;
}
});
});
.cform {
width: 50%;
}
.cform .inputError {
\t background-color: #ffffff;
outline: 2.5px solid #900f0f;
color: black;
}
.input_label {
\t display: none;
}
.label_error {
\t display: block;
\t color: #900f0f;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="cform" action="" method="post">
\t \t \t \t \t <label class="input_label" for="name">ERROR</label>
\t <input type="text" id="name" class="inputValidation shad" name="name" value="" placeholder="Name...">
\t \t \t \t \t <label class="input_label" for="email">ERROR</label>
\t <input type="text" id="email" class="inputValidation shad" name="email" value="" placeholder="Email...">
\t \t \t \t \t <label class="input_label" for="phone">ERROR</label>
\t <input type="text" id="phone" class="inputValidation shad" name="phone" value="" placeholder="Contact Number...">
\t \t \t \t \t <label class="input_label" for="message">ERROR</label>
\t <textarea name="message" id="message" class="inputValidation shad" placeholder="Type your message here..."></textarea>
<input type="submit" class="" name="sumbit" value="send">
</form>
Können Sie ein Beispiel für eine Reihe von Eingaben geben, die Ihre Erwartungen nicht erfüllt,? Wenn ich es hier teste, sehe ich nur den E-Mail-Fehler, wenn ich * keine * E-Mail einfüge, die gemäß Ihrer Regex gültig ist (was bei vielen Nicht-US-Domänen fehlschlägt, Adressen mit '+' im Benutzernamen usw.) aber das ist ein anderes Thema). –