Ver*_*igo 12 jquery jquery-validate
我需要帮助来创建自定义方法来验证多个文本输入值的总和.
在表单中,我有可变数量的文本输入,并且在提交时我需要验证同一组中的输入值的总和恰好是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' />
Run Code Online (Sandbox Code Playgroud)
Ver*_*igo 17
我这样做了:
自定义验证规则:
$.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}")
);
Run Code Online (Sandbox Code Playgroud)
并使用这样:
$(".group1").rules('add', {sum: 100});
$(".group2").rules('add', {sum: 100});
Run Code Online (Sandbox Code Playgroud)
var sumOfValues=0;
$(".group1").each(function(){
sumOfValues+=$(this).val();
});
if(sumOfValues==100){
}else{
}
Run Code Online (Sandbox Code Playgroud)
或以插件形式
$.fn.validateValuesSum=function(value){
var sumOfValues=0;
this.each(function(){
sumOfValues+=$(this).val();
});
if(sumOfValues==value){
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)