【发布时间】:2019-04-11 18:03:14
【问题描述】:
我有 2 个需要数值(介于 0-3 之间)的输入表单:
<input type="text" id="number1" name="number1" placeholder="0" maxlength="1" class="optionsNumber" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 51">
<input type="text" id="number2" name="number2" placeholder="0" maxlength="1" class="optionsNumber" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 51">
然后我使用 Jquery Validate addMethod 来检查 number1 和 number2 的组合值是否小于 4:
<script>
$(document).ready(function() {
$.validator.addMethod("check_months", function (value, element, param) {
var number1 = $("#number1").val() || 0;
var number2 = $("#number2").val() || 0;
return this.optional(element) || parseInt(number1)+parseInt(number2) < 4;
}, "The total number allocated to number1 and number2 cannot be more than 3.");
$("#Form").validate({
onkeyup: function(element) {
this.element(element);
},
onfocusout: function(element) {
this.element(element);
},
rules: {
number1: {
check_months: true,
},
number2: {
check_months: true,
},
},
messages: {
number1: "Please enter the number you require number1 (max 3)",
number2: "Please enter the number you require number2 (max 3)"
},
errorPlacement: function(error, element) {
var placement = $(element).data('error');
if (placement) {
$(placement).append(error)
} else {
error.insertAfter(element);
}
}
});
});
</script>
如果 number1 的输入字段包含 2 并且 number2 的输入字段包含 2 则组合值为 4,因此我想显示 addMethod 消息(分配给 number1 和 number2 的总数不能超过 3。)但我看到的错误是验证消息(请输入您需要的数字 number1/2(最多 3 个))。
如何使用 addMethod 消息覆盖验证消息?
更新:通过注释掉标准消息,会显示 addMethod 消息,但如果用户想要两者:
messages: {
//number1: "Please enter the number you require number1 (max 3)",
//number2: "Please enter the number you require number2 (max 3)"
},
【问题讨论】:
-
在您的 1 号和 2 号的 addMethod 中,您正在获取相同的 2 号值。
-
感谢@SangitaKendre,这是一个错字,我试图清理代码以使其更易于阅读 - 现在已修复,但问题仍然存在。
标签: jquery validation