У меня есть форма с полем номера телефона требуется, который выглядит, как это с maskedinput плагинУдалите литералы от входного значения до проверки и представить
(999) 999-9999
Я хочу проверку Jquery к игнорируйте литералы, чтобы подтвердить это. Кроме того, я хочу, чтобы литералы были удалены до отправки формы. Но если есть ошибка проверки, я все равно хочу активировать плагин maskedinput, чтобы формат выглядел корректно для пользователя.
Я полагаю, что могу редактировать регулярное выражение для проверки, но затем, когда форма будет отправлена, литералы все равно будут там.
Сообщите мне об этом лучше.
Любые идеи? Я довольно новичок в jquery, и все такое подробное решение было бы замечательным.
Моего кода Javascript это
$(document).ready(function(){
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "US Phone Number Required");
$("#valform").validate({
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
$("#error-message").show().text("Please correct the required field(s)");
} else {
$("#error-message").hide();
}
},
messages: {
phone: {
required: ""
}
},
rules: {
phone: {
required: true,
phoneUS: true
},
},
});
$("#phone").mask("(999) 999-9999",{placeholder:" "});
});
Вы можете избежать символа '+'. –
@DavidThomas Нет, если вы хотите ввести номер телефона, его можно использовать – PaperThick
Да, но без экранирования это специальный символ регулярного выражения? Или я что-то упускаю, это все еще немного рано ... –