Javascript jquery.validate:多个字段加起来就是值

Javascript jquery.validate:多个字段加起来就是值,javascript,jquery,jquery-plugins,validation,Javascript,Jquery,Jquery Plugins,Validation,我正在开发一个表单,用户输入一个总数,然后在其他字段中输入更多值,这些字段表示该总数的一部分。例如: <input type="text" name="total" /> <input type="text" name="portion[1]" /> <input type="text" name="portion[2]" /> <!-- and so on --> <input type="text" name="portion[n]" /

我正在开发一个表单,用户输入一个总数,然后在其他字段中输入更多值,这些字段表示该总数的一部分。例如:

<input type="text" name="total" />
<input type="text" name="portion[1]" />
<input type="text" name="portion[2]" />
<!-- and so on -->
<input type="text" name="portion[n]" />

如果用户在总数中输入123.45,则他们需要填写1-n部分,以便其值相加为123.45。每个部分字段都必须是正数或0,但这些是对它们唯一的其他限制

验证插件有一个equalTo验证方法,但这似乎只能处理一个字段,而不是一个集合

有办法去吗

  • 定义验证规则,该规则将根据“总计”字段验证字段组的总计
  • 获取一条消息以显示字段组(如果它们没有相加)

  • 使用jquery事件尝试此函数

      function Mvalidate()
        {
        var total=$('[name=total]').val();
    
        var n=10; // no of portions 
        var partialsum=0;
        for(var i=0;i<n; i++)
        {
        var t=$("[name=portion["+i+"]]").val();
        partialsum+=parseFloat(t);
    
        }
    
        if(partialsum<total)
        alert("Portions add up not complete!");
    
        }
    
    $("#checkbutton").click(function()
      {
      Mvalidate();
      });
    
    函数Mvalidate()
    {
    var total=$('[name=total]')。val();
    var n=10;//部分的数量
    var partialsum=0;
    对于(var i=0;i@Krishnan:

    根据

    $('total')

    是一个类选择器,不是吗?如果要查找具有name属性的元素,必须按以下方式编写:

    $("[name='total']").val();
    $("[name='portion["+i+"]']").val();
    
    如果您知道只有一个具有该名称的输入字段,则可以使用

    $("input[name='total']").val();
    

    看起来它有一些解决这个问题的答案。

    我也在寻找同样的答案。我已经设置了类和ID,以便根据需要获取字段,但不要忘记val()只获取第一个匹配表单控件的值。要获取它们,您需要执行$('selector')。每个()使用某种回调来保持所有VAL的运行总数