У меня есть форма для входа в систему, которая проверяется на отправке. Эта форма входа сначала не проверяет события onkeyup, потому что валидация вызывается только на submit, и это то, что я хочу. Если я отправлю форму с недопустимыми значениями поля, то есть пустым, ошибки будут правильно сгенерированы.jquery validation plugin - resetForm()
Однако, когда я исправляю ошибки и успешно вхожу в систему и затем выхожу из системы, форма входа теперь генерирует ошибки для обоих полей для onkeyup. Я попытался использовать resetForm(), который исправляет поведение поля username, но поле пароля по-прежнему генерирует ошибку для onkeyup. Я также попытался установить onkeyup: false, а затем вызвал resetForm(), но тогда мне нужно изменить привязку привязки проверки к «mousedown» вместо «click», что приводит к неправильной работе проверки.
Я также попытался выполнить сброс() на самой форме, но это тоже не сработает. Как я могу правильно реализовать resetForm(), чтобы оба поля игнорировали валидацию для событий onkeyup, когда пользователь изначально выходит на страницу входа в систему, а также когда они выходят из системы и возвращаются на страницу входа, без необходимости перезагружать страницу.
init_language(function(){
var placeholderLabels = $('label[for="userId"], label[for="password"]').not('.error');
$('html').i18n();
if($('#sidebar-login fieldset span').length>0) {
$(placeholderLabels).css({'display':'block'});
} else {
$('#userId, #password').placeholder();
}
});
$('#input, #password').blur(function(){
$('html').i18n();
if($('#sidebar-login fieldset span').length>0) {
return;
} else {
$('#userId, #password').placeholder();
}
});
var validator = $("#sidebar-login").validate();
validator.resetForm();
}
$('.ajax_button_submit').live('click', function() {
var form = $(this).parents('form');
var is_submit = true;
if (form.attr('error') && !form.data('visit')) {
form.validate({errorLabelContainer: form.attr('error')});
form.data('visit', 1);
}
if (is_submit && form.valid()) {
var url = form.attr('url') || form.attr('action');
var type = form.attr('type') || 'json';
if (type == 'json') {
var data = JSON.stringify($('[data-submit!=false], #password[realtype!=text]', form).serializeJSON());
} else {
var data = $('[data-submit!=false], #password[realtype!=text]', form).serialize();
}
Спасибо за любую помощь,
J
Я выясняю это. Мне пришлось отменить форму с помощью: $ ('# sidebar-login'). Data ('validator', null); – neridaj
Вы не используете плагин jQuery Validate, поэтому не используйте тег [tag: jquery-validate]. И поскольку вы выяснили свою проблему, отправьте ответ ниже, чтобы он помогал другим. В противном случае, если вы предпочитаете, вы можете указать свой вопрос для удаления. – Sparky