ErrorClass в jquery validate плагин?
Я использую jquery validate плагин в своем веб-приложении для проверки форм для пустых и других простых проверок.
Я использую ниже код для настройки jquery validate plugin для моей формы, в нем есть параметр erroClass
, где я определил имя класса CSS authError
, которое я хочу применить к сообщениям об ошибках, но его применение тот же класс в поле INPUT, я не хочу применять его в поле INPUT, просто хочу, чтобы это сообщение об ошибке. Пожалуйста, проверьте и помогите. Спасибо!
$("#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"
}
}
});
Ответы
Ответ 1
Спасибо, за трюки ребята, но вместо этого я нашел лучший способ, используя только код jQuery. В плагине validate есть событие highlight
, которое вызывается при возникновении ошибки, чтобы выделить поля ошибки. Я просто удалил элемент формы класса при вызове этого события.
$("#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);
}
});
Ответ 2
Фактически вы должны просто определять разные классы для ввода и диапазона (span, поскольку для параметра errorElement задано значение span, иначе оно будет label), вместо удаления применяемого класс
например.
span.authError {color: red;}
input.authError {border: 1px dotted red;}
а не только .authError {}, который будет применяться как к вводу, так и к диапазону
Ответ 3
$("#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); }
});
Ответ 4
В плагине проверки jQuery errorClass
применяется к элементу сообщения об ошибке (обычно a <label>
, но a <span>
в вашем случае) и самому проверяемому элементу. Поскольку вы хотите только стиль элемента сообщения об ошибке, вы должны написать:
span.authError {
// Your error element style.
}
Ответ 5
Если вы хотите дать css для сообщения об ошибке.
Затем вместо использования errorClass определите правило css
label.error
Ответ 6
Проверьте это:
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');
}
});