Как отключить пользовательский метод проверки при условии
-
03-07-2019 - |
Вопрос
Я использую jQuery Плагин проверки чтобы убедиться, что пользователь ввел положительный результат стоимость_автомобиля в первом текстовом поле и положительном к оплате во втором текстовом поле, например, *cost_of_car * 0,4 <= Payment_amount <= Cost_of_car*:
$.validator.addMethod("testMaxAmount", function()
{
return $("#cost_of_car").val() - 0 >= $("#payment_amount").val() - 0;
}, "Can't be more than cost_of_car");
$.validator.addMethod("testMinAmount", function()
{
return $("#cost_of_car").val() * 0.4 <= $("#payment_amount").val() - 0;
}, "Can't be less than cost_of_car * 0.4");
$("#calc_form").validate(
{
rules:
{
cost_of_car:
{
required: true,
number: true,
min: 1,
max: 10000000
},
payment_amount:
{
required: true,
number: true,
testMaxAmount: true,
testMinAmount: true
}
}
});
Теперь я хочу пропустить проверки testMaxAmount и testMinAmount до тех пор, пока стоимость_автомобиля действует.Тестирование
$("#calc_form").validate().element("#cost_of_car")
или даже
$("#calc_form").validate({ignore: "#payment_amount"}).element("#cost_of_car")
внутри этих методов приводит к рекурсии и зависанию браузера.
Не могли бы вы предложить какой-нибудь другой метод отключения проверки к оплате до стоимость_автомобиля действителен, пожалуйста?
Решение
ОБНОВЛЯТЬ: Изменение должно быть в validator.addMethod()
звонки:
$.validator.addMethod("testMaxAmount", function()
{
if($("#cost_of_car").valid())
return $("#cost_of_car").val() - 0 >= $("#payment_amount").val() - 0;
else
return true;
}, "Can't be more than cost_of_car");
$.validator.addMethod("testMinAmount", function()
{
if($("#cost_of_car").valid())
return $("#cost_of_car").val() * 0.4 <= $("#payment_amount").val() - 0;
else
return true;
}, "Can't be less than cost_of_car * 0.4");
Не связан с StackOverflow