jQuery Validate Plugin - Как сложить несколько полей формы? - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь суммировать значения нескольких полей формы, используя 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}")
);  

Но я не смог заставить его работать.
Любая помощь будет большой благодарностью.

...