jquery.validate:多个字段合计为值

时间:2011-02-24 08:40:17

标签: 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]" />

如果用户总共输入123.45,那么他们需要填写1-n部分,使其值加起来为123.45。每个部分字段必须是正数或0,但这些是对它们的唯一其他限制。

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

有没有办法

  1. 定义验证规则,该规则将根据总字段
  2. 验证字段组的总数
  3. 如果他们没有添加
  4. ,只需显示一组字段即可显示

3 个答案:

答案 0 :(得分:1)

使用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();
  });

答案 1 :(得分:0)

@Krishnan:

根据Jquery Doc

  

$( '总')。

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

$("[name='total']").val();
$("[name='portion["+i+"]']").val();

如果您知道只有一个带有该名称的输入字段,您可以使用

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

答案 2 :(得分:0)

This question看起来有一些答案可以解决这个问题。