Проверка телефона на jQuery

jQuery номер Input Mask ПРОВЕРКА

<quote>Очень часто пользователю требуется ввести номер телефона в различных формах, отправляемых через страницы сайта. Вроде бы всё просто - ввести 9 или 10 цифр. Но часто требуется проверка введённого номера телефона перед отправкой формы. Вот тут и всплывает головная боль для разработчика - проверить формат, ведь пользователь может ввести 89000000000 или +7900 000 00 00, или (900)000-00-00 - и при этом каждый раз будет прав!
Разработчик же, в свою очередь, должен написать несколько вариантов регулярных выражений, чтобы проверить правильность вводимого номера.

В нашей компании в подобных случаях используется простое и элегантное решение, базирующееся на jQuery - маска для поля ввода.
Для работы потребуется библиотека jquery.inputmask.js - её можно легко найти, воспользовавшись поисковой системой. Сначала подключается библиотека:

<script type="text/javascript" src="jquery.inputmask.js"></script>

А теперь код:

<input id="phone" type="text" name="phone" value="" />
<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
$("#phone").inputmask("(999)999-99-99");//маска
});
// ]]></script>

Скрипт не даст нам ввести телефон в неправильном формате, а также исключит ввод символов, кроме цифр - пользователь не сможет ввести буквы или знаки препинания.
Теперь разработчику только остаётся проверить, что телефон не пустой и введён полностью перед отправкой - для этого достаточно только одного регулярного выражения - ведь формат телефона задан жёстко. Для примера приведём код простого регулярного выражения для проверки указанного формата:

var tph = document.getElementById("phone").value;
tph = !tph.match(/^\([0-9]{3}\)[0-9]{3}-[0-9]{2}\-[0-9]{2}/);
</quote>

Так собственно вопрос, как проверить что введено полностью, применяю вот так, не срабатывает:

<script>
$(function() {
$("#input_phone").inputmask("(999)999-99-99");
var tph = document.getElementById("input_phone").value;
tph = !tph.match(/^\([0-9]{3}\)[0-9]{3}-[0-9]{2}\-[0-9]{2}/);
});
</script>

Примечание:
holden321

Не срабатывает как вы писали, я уже по разному писал, и как и вас и так:

<script type="text/javascript">
$(document).ready(function() {
$("#phone").inputmask("(999)999-99-99");
});
$("form").on("submit", function () {
var tph = document.getElementById("phone").value;
tph = !tph.match(/^\([0-9]{3}\)[0-9]{3}-[0-9]{2}\-[0-9]{2}/);
if (tph) alert('введено неверно');
else alert('введено верно');
return false;
});
</script>

Даже маску не выводит. Будем дальше искать
Ответы:
Вы как блондинка, просто скопировали код, и думаете что он каким то волшебным образом сработает. Должно же быть хоть небольшое понимание что происходит.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.