jquery validate:多个输入值的总和

发布于 2024-10-03 07:47:57 字数 568 浏览 0 评论 0原文

我需要帮助来创建自定义方法来验证多个文本输入值的总和。

在表单中,我有可变数量的文本输入,提交时我需要验证同一组中的输入值之和是否恰好为 100。

示例(第二组不应验证):

<input type='text' name='g1_number1' class='group1' value='20' />
<input type='text' name='g1_number2' class='group1' value='40' />
<input type='text' name='g1_number3' class='group1' value='40' />

<input type='text' name='g2_number1' class='group2' value='20' />
<input type='text' name='g2_number2' class='group2' value='40' />
<input type='text' name='g2_number3' class='group2' value='10' />

I need help to create custom method to validate sum of multiple text input values.

In form I have variable number of text inputs and when submitting I need to validate that the sum of input values in same group is exactly 100.

example (second group should not validate):

<input type='text' name='g1_number1' class='group1' value='20' />
<input type='text' name='g1_number2' class='group1' value='40' />
<input type='text' name='g1_number3' class='group1' value='40' />

<input type='text' name='g2_number1' class='group2' value='20' />
<input type='text' name='g2_number2' class='group2' value='40' />
<input type='text' name='g2_number3' class='group2' value='10' />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剩余の解释 2024-10-10 07:47:57

我以这种方式工作:

自定义验证规则:

$.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}")
);

并像这样使用:

$(".group1").rules('add', {sum: 100});
$(".group2").rules('add', {sum: 100});

I got it working this way:

Custom validation rule:

$.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}")
);

And using like this:

$(".group1").rules('add', {sum: 100});
$(".group2").rules('add', {sum: 100});
溇涏 2024-10-10 07:47:57
var sumOfValues=0;
$(".group1").each(function(){
   sumOfValues+=$(this).val();
});
if(sumOfValues==100){

}else{

}

或以插件形式

$.fn.validateValuesSum=function(value){
   var sumOfValues=0;
   this.each(function(){
     sumOfValues+=$(this).val();
   });
   if(sumOfValues==value){
      return true;
   }
   return false;
}
var sumOfValues=0;
$(".group1").each(function(){
   sumOfValues+=$(this).val();
});
if(sumOfValues==100){

}else{

}

or in plugin form

$.fn.validateValuesSum=function(value){
   var sumOfValues=0;
   this.each(function(){
     sumOfValues+=$(this).val();
   });
   if(sumOfValues==value){
      return true;
   }
   return false;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文