Я пытаюсь суммировать значения нескольких полей формы, используя jQuery Validate и убедитесь, что сумма равна 100 или меньше.Я пробовал разные способы добавления методов, но ничего не получилось.Используя Ruby on Rails и Gem Simple Form, у меня есть следующий код, который мне понадобится для суммирования всех полей и обеспечения итогового значения (в процентах) 100 или ниже, и если не отображается сообщение об ошибке:
var $validator = $("#edit_quote_" + quote_id).validate({
rules: {
"quote[plant_pc]": {
required: true,
min: 0,
max: 100,
},
"quote[phase_three_pc]": {
required: true,
min: 0,
max: 100,
},
"quote[solar_pc]": {
required: true,
min: 0,
max: 100,
},
"quote[sprinkler_pc]": {
required: true,
min: 0,
max: 100,
},
},
})
});
Я пытался написать различные методы https://jqueryvalidation.org/jQuery.validator.addMethod/, но безуспешно, например, адаптировал и использовал переполнение стека формы:
$.validator.addMethod(
"sum",
function (value, element, params) {
var sumOfVals = 0;
var parent = $(element).parent(".parentDiv");
$(parent).find("input").each(function () {
sumOfVals = sumOfVals + parseInt($(this).val(), 10);
});
if (sumOfVals == params) return true;
return false;
},
jQuery.format("Sum must be {0}")
);
Но я не смог заставить его работать.
Любая помощь будет большой благодарностью.