#jquery #validation
#jquery #проверка
Вопрос:
У меня есть форма с тремя входными данными, рассчитанными на Javascript, которые по умолчанию равны 0.
Для проверки формы, по крайней мере, одно из полей должно иметь значение выше 0.
Как я могу сделать это успешно? Я уже знаю о методе проверки ‘require_from_group’, чтобы убедиться, что одно из нескольких полей заполнено, но есть ли что-то подобное для проверки значения этих полей?
JS:
$('#registerForm').validate({
rules: {
gramsTOT: {
require_from_group: [1, '.notZero']
},
unitsTOT: {
require_from_group: [1, '.notZero']
},
eurcalcTOT: {
require_from_group: [1, '.notZero']
}
}, // end rules
}); // end validate
HTML:
<input type='number' lang='nb' class='specialInput first notZero' id='gramsTOT' name='gramsTOT' value="0" readonly /><br />
<input type='number' lang='nb' class='specialInput first notZero' id='unitsTOT' name='unitsTOT' value="0" readonly /><br />
<input type='number' lang='nb' class='specialInput notZero' id='eurcalcTOT' name='eurcalcTOT' value="0" readonly />
Ответ №1:
Вы можете использовать jQuery.validator.addMethod
для создания пользовательского правила проверки, в вашем случае это будет
jQuery.validator.addMethod("greater_than_number", function(value, element, options) {
var val = $(options[1], element.form).filter(function() {
return $(this).val();
}).val();
console.log(val);
var valid = parseFloat(val) > parseFloat(options[0]) ;
console.log(valid);
return valid;
}, jQuery.validator.format('one of these must bigger than {0}'));
$('#myform').validate({
rules: {
gramsTOT: {
require_from_group: [1, '.notZero'],
greater_than_number: [0, '.notZero']
},
unitsTOT: {
require_from_group: [1, '.notZero'],
greater_than_number: [0, '.notZero']
},
eurcalcTOT: {
require_from_group: [1, '.notZero'],
greater_than_number: [0, '.notZero']
}
}, // end rules
}); // end validate
Смотрите демонстрацию здесь
Комментарии:
1. Работает как шарм! Большое спасибо! Теперь перейдем к сложной части, анализу и пониманию вашего кода … 🙂