Ответ 1
Проблема заключается в регулярном выражении, используемом для чисел. Рассматривая последнюю версию, строки 1021-1023, у нас есть:
number: function(value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
},
Проблема заключается в том, что этот первый фрагмент, который ищет ведущие отрицательные знаки и числа, индивидуально или в группах из трех разделенных запятыми, не является необязательным:
(?:\d+|\d{1,3}(?:,\d{3})+)
Устранение ?
в конце сделает его необязательным:
(?:\d+|\d{1,3}(?:,\d{3})+)?
С помощью этого обновления вы можете либо изменить локальную копию плагина, изменив регулярное выражение на модифицированную версию, либо добавить метод проверки замещения на ваш javascript
jQuery.validator.addMethod("number", function(value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
}, "Please enter a valid number.");
На любой странице с этим вызовом addMethod
метод проверки number
будет переопределен для выполнения проверки числа, которая не требует начального нуля.