У меня есть 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.) но ошибки, которые я вижу, являются подтверждением сообщения (Пожалуйста, введите номер, который вам требуется номер 1/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)"
},