На данный момент неправильный формат просто принимает красный цвет ...
Это потому, что вы не используете плагин проверки для этой частиВаша оценка формы.По какой-то причине вы создали обработчик событий, который делает это полностью вне параметров плагина проверки.
Теперь я хочу запретить следующий шаг, если ввод не в правильном формате.
У вас есть только правило required
, благодаря class="required"
для этого поля, которое автоматически выбирается плагином проверки.Поэтому, как только он заполнен, плагин проверки удовлетворен и позволяет следующий шаг.Чтобы проверить что-либо еще для этого поля, вам нужно применить соответствующие правила с помощью методов, встроенных в этот плагин.Вы не можете просто использовать событие keyup
, чтобы покрасить его в красный цвет, и ожидать, что плагин проверки будет с этим что-то делать.
Вот в чем проблема ...
$('#specialNumber').on('keyup', function (e) {
if (!this.value.match(/^(6|8|10|12)$/)) {
$(this).addClass('error-color'); // adding error class
} else {
$(this).removeClass('error-color'); // remove error class
}
});
С вашим пользовательскимkeyup
функция, вы в основном просто делаете свой собственный проверочный тест и меняете цвет.← Как вы ожидаете, что плагин проверки справится с этим?
Удалите вашу функцию keyup
.
Правильный способ - написать пользовательское правило или использовать встроенный-в правилах, в плагине проверки, и тогда все будет работать как положено.
rules: {
...
specialNumber: {
pattern: /^(6|8|10|12)$/ // <- use the pattern rule for regex
}
....
ПРИМЕЧАНИЕ : чтобы использовать правило pattern
, необходимо включить файл additional-methods.js
.
Рабочая ДЕМО: jsfiddle.net / j8n0o9ty /