[英]Minimum collective value of several inputs with jquery validate
我有多个具有相同名称的文本输入,并且如果所有输入的总值小于1,我试图阻止表单提交。例如,用户不能将所有输入都设为0,但至少在其中之一上放1,这样所有投入的总价值至少为1。
我在jquery validate中创建了一个方法来检查值是否大于所选输入的0
<td><input class='{nbTeams: true} nbTeamsVal' type="text" class="form-control" id="nbTeamsMiniSoccer_20" name="nbTeams[]"></td>
<td><input class='{nbTeams: true} nbTeamsVal' type="text" class="form-control" id="nbTeamsYouthMale_20" name="nbTeams[]"></td>
这是方法:
$.validator.addMethod("nbTeams", function(value, elem, param) {
return $(".nbTeamsVal").value > 0;
},"Collective value must be more than 1!"
);
这是我的规则和自定义消息
$(document).ready(function () {
$('#myForm').validate({
rules: {
"nbTeams[]":{
required: true
}
},
messages: {
"nbTeams[]":"This group of fields can only contain numbers and one must contain a value of at least 1."
},
errorElement : 'div',
errorLabelContainer: '.errorTxt',
submitHandler: function (form) {
form.submit();
}
});
});
我编辑您的代码试试这个:
$.validator.addMethod("nbTeams", function(value, elem) { var sumOfVals = 0; $(".nbTeamsVal").each(function () { sumOfVals = sumOfVals + parseInt($(this).val()); }); return sumOfVals>0; },"Collective value must be more than 1!" ); $('#myForm').validate({ rules: { "nbTeams[]":"nbTeams" }, errorElement : 'div', errorLabelContainer: '.errorTxt', submitHandler: function (form) { alert('valid form submitted'); // for demo return false; // for demo } });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/additional-methods.js"></script> <form id="myForm" method="post" action="#"> <td><input class='{nbTeams: true} nbTeamsVal' type="text" class="form-control" id="nbTeamsMiniSoccer_20" name="nbTeams[]" value="0"></td> <td><input class='{nbTeams: true} nbTeamsVal' type="text" class="form-control" id="nbTeamsYouthMale_20" name="nbTeams[]" value="0"></td> <div class="errorTxt"></div> <button type="submit">Submit</button> </form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.