У меня есть форма, проверяемая jQuery.validate. Используя параметр errorPlacement, у меня есть собственный набор функций для проверки ошибок в реальном времени. Используя опцию успеха, у меня есть собственный набор функций, чтобы избавиться от сообщений об ошибках и заменить их.
Все отлично работает, за исключением того, что моя проверка скрытых полей работает только при отправке. С опцией успеха jQuery.validate отлично работает для всех других полей, кроме моих скрытых полей. Я использую скрытые поля для объединения значений из нескольких текстовых полей и флажков. Вот пример моей дилеммы с тремя полями даты рождения: день, месяц, год:
HTML:
<label for="birthmonth">Birthdate</label></div>
<div class="birthfield1"><input type="text" id="birthmonth" name="birthmonth" class="ignore" /></div>
<div class="birthfield23"><input type="text" id="birthday" name="birthday" class="ignore" /></div>
<div class="birthfield23"><input type="text" id="birthyear" name="birthyear" class="ignore" /></div>
<div class="errorparent"><input id="birthdate" name="birthdate" type="hidden" /><div class="norederrorx errordetails2"> </div></div>
jQuery/javascript для обновления скрытого поля даты рождения:
$('#birthday,#birthmonth,#birthyear').change(function() {
var inputbirthday = $('#birthday').val();
var inputbirthmonth = $('#birthmonth').val();
var inputbirthyear = $('#birthyear').val();
if (inputbirthday && inputbirthmonth && inputbirthyear) {
alert('all values');
$('#birthdate').val($('#birthday').val()+'/'+ $('#birthmonth').val()+'/'+ $('#birthyear').val());
}
if (inputbirthday == "" || inputbirthmonth == "" || inputbirthyear == ""){
$('#birthdate').val('');
}
});
И код параметра успеха jQuery.validate (который работает:
success: function() {
if (elementholder.hasClass('ignore') == false) {
errorspotholder.find('.rederrorx').removeClass('rederrorx').addClass('norederrorx');
}
},