J'utilise jquery validate plugin dans mon application Web pour valider les formulaires pour les validations vierges et autres simples.
J'utilise le code ci-dessous pour configurer le plug-in jquery validate de mon formulaire. Il contient une option erroClass
, où j'ai défini un nom de classe CSS authError
que je souhaite appliquer aux messages d'erreur, mais qui applique la même classe à la zone INPUT. Eh bien, je ne veux pas l'appliquer dans la zone INPUT, je le veux juste pour le message d'erreur. S'il vous plaît vérifier et aider. Merci!
$("#frmSignin").validate({
debug: false,
errorClass: "authError",
errorElement: "span",
rules: {
username: {
required: true,
minlength: 10
},
password: {
required: true
}
},
messages: {
username: {
required: "Please enter your username"
},
password: {
required: "Please enter your password"
}
}
});
Merci pour les astuces les gars, mais j'ai plutôt trouvé un meilleur moyen en utilisant le code jQuery uniquement. Il existe un événement highlight
dans le plug-in validate qui est appelé en cas d'erreur pour mettre en surbrillance les champs d'erreur. Je viens de supprimer l'élément de formulaire de classe lorsque cet événement est appelé.
$("#frmSignin").validate({
debug: false,
errorClass: "authError",
errorElement: "span",
rules: {
username: {
required: true,
minlength: 10
},
password: {
required: true
}
},
messages: {
username: {
required: "Please enter your username"
},
password: {
required: "Please enter your password"
}
},
highlight: function(element, errorClass) {
$(element).removeClass(errorClass);
}
});
En fait, vous devriez simplement définir différentes classes pour les entrées et les span ( span puisque errorElement est défini sur span, sinon ce sera label ) plutôt que de supprimer la classe appliquée.
par exemple.
span.authError {color: red;}
input.authError {bordure: 1px pointillé en rouge;}
et pas seulement .authError {} qui sera appliqué à la fois à input et span
$("#borrowerForm").validate({
errorElement: 'span',
errorElementClass: 'input-validation-error',
errorClass: 'field-validation-error',
errorPlacement: function(error, element) {},
highlight: function(element, errorClass, validClass) {
$(element).addClass(this.settings.errorElementClass).removeClass(errorClass);
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass(this.settings.errorElementClass).removeClass(errorClass);
},
onkeyup: false,
errorPlacement: function (error, element) { error.insertAfter(element); }
});
Dans le plug-in de validation jQuery, la variable errorClass
est appliquée à l'élément de message d'erreur (généralement un <label>
, mais un <span>
dans votre cas) et à l'élément validé lui-même. Puisque vous voulez seulement styler l'élément de message d'erreur, vous devriez écrire:
span.authError {
// Your error element style.
}
Vérifie ça:
jQuery.validator.messages.required = "";
$('#frm-contact').validate({
invalidHandler: function (e, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = errors == 1
? 'You missed 1 field. It has been highlighted below'
: 'You missed ' + errors + ' fields. They have been highlighted below';
$("div.error span").html(message);
$("div.error").show();
} else {
$("div.error").hide();
}
},
onkeyup: false,
submitHandler: function () {
$("div.error").hide();
alert("submit! use link below to go to the other step");
},
highlight: function (element, required) {
$(element).fadeOut(function () {
$(element).fadeIn();
$(element).css('border', '2px solid #FDADAF');
});
},
unhighlight: function (element, errorClass, validClass) {
$(element).css('border', '1px solid #CCC');
}
});
Si vous voulez donner css pour le message d'erreur. Au lieu d'utiliser errorClass, définissez la règle css
label.error