Ich habe den folgenden einfachen Validierungscode mit Jquery geschrieben, alles funktioniert gut, aber nur der Fehler des letzten Feldes wird angezeigt. Ich habe den Autor dieses Fieldset mit einem Fehler div Abdrucken:jQuery benutzerdefinierte Validierung zeigt nur Fehler des letzten Felds
<fieldset data-check-id="1">
<div class="fs-error"></div>
<input type="text" size="50" id="ptitle" name="title" />
<input type="text" id="address" name="p_address">
</fieldset>
Next ich so etwas wie diese
function check($fs){
var ok = true;
switch($fs.attr('data-check-id')){
case '1':
$ptitle = $('#ptitle',$fs);
$address = $('#address',$fs);
//title
if ($ptitle.val().length == 0) {
ok=false;
jQuery("#ptitle").css("border-bottom", "2px solid red");
jQuery('.fs-error').html('<span style="color:red;"> Error 1 </span>');
jQuery('.fs-error').show();
}
else{
jQuery("#ptitle").css("border-bottom", "2px solid rgb(0, 102, 0)");
jQuery('.fs-error').hide();
}
//Address
if ($address.val().length == 0) {
ok=false;
jQuery("#address").css("border-bottom", "2px solid red");
jQuery('.fs-error').html('<span style="color:red;"> Error 2 </span>');
jQuery('.fs-error').show();
}
else{
jQuery("#address").css("border-bottom", "2px solid rgb(0, 102, 0)");
jQuery('.fs-error').hide();
}
break;
}
if(ok === true){
$fs.attr('data-complete', true);
return true;
}
else{
$fs.attr('data-complete', false);
return false;
}
}
Funktion versucht habe, für die Überprüfung
function form_completeCheck(){
var ok = true;
$('fieldset').each(function(index,elem){
$this = $(this);
if ($this.attr('data-complete') != 'true') {
ok = false;
};
})
if (ok === true) {
//go go go..
return true;
}
else{
// stop
return false;
}
}
jetzt alles richtig funktioniert Wenn jedoch Titel und Adresse nicht ausgefüllt sind, wird nur der Adressfehler angezeigt (Error 2). Wenn ich die Adresse einfüge, wird die Titeleingabe mit einem roten Rand hervorgehoben, aber ihre Nachricht wird nicht angezeigt (Fehler 1). Was mache ich falsch? Vielen Dank im Voraus
_ "nur der Adressfehler (Fehler 2) zeigt" _ zu sein scheinen überschreiben exisiting 'html 'at' jQuery ('. fs-error') .html (' Fehler 2'); '? Sie können alternativ 'html5',' css' verwenden, um die Anforderung zu erfüllen. – guest271314