Как запретить отправлять обрезанный номер телефона?
Всем привет! Есть сайт на wordpress с формой отправки.
Для ввода телефона по маске установлена библиотека masked-input-plugin.js Формирую ее таким образом $(document).ready(function () { $('.fphone').mask('+7(999)-999-99-99'); }); Сама маска работает хорошо, но проблема возникает, когда кто-то начинает вводить скажем номер с 8ки, после этого не проверяет, а сразу нажимает кнопку отправить и в итоге телефон на почту приходит обрезанный, т.е. форма считает, что в поле все введено правильно и допускает не полное заполнение маски. Форма реализована с помощью плагина contact form 7, я переопределяю его проверку номера вот так в файле functions.php // define the wpcf7_is_tel callback function custom_filter_wpcf7_is_tel( $result, $tel ) { $result = preg_match( '^\+?[78][-\(]?\d{3}\)?-?\d{3}-?\d{2}-?\d{2}$', $tel ); return $result; } add_filter( 'wpcf7_is_tel', 'custom_filter_wpcf7_is_tel', 10, 2 ); Но, в результате, каждый раз пишет "некорректный номер телефона" Перепробовал много вариантов, в том числе и регулярок, но пока к верному решению не пришел. |
Не катит?
$(document).ready(function () { $('.fphone').mask('+9(999)-999-99-99'); }); |
Цитата:
|
$(document).ready(function() { $('.fphone').mask('+7(999)-999-99-99').on('input',function(){ if(+this.value.replace(/\D+?/g,'').substr(1,1)===8) alert('Achtung!'); }); }); |
Nexus,
а что мы этим решением хотим добиться? Что-то я не догоняю. Теперь если вводим телефон с 8ки - он на каждую введенную цифру ругается алертом, а если с 7ки, то по-прежнему благодарит за отправку обрезанного телефона.. причем, если ввести только 3 цифры, то ругнется на то, что поле слишком короткое, а вот больше - скушает запросто! |
giwuf, то ли я дебил, то ли у вас маска не работает.
Если пользователь первой цифрой введет восьмерку, то она (если маска работает) станет второй цифрой в номере телефона. Скрипт проверяет вторую цифру в номере телефона и, если это восьмерка, вызывает alert. Вместо alert'а запретите форме отправляться и готово. Цитата:
|
Цитата:
В итоге плюнул, вырезал из темы библиотеку с проверкой и установил плагин https://ru.wordpress.org/plugins/cf7-phone-mask-field/ и все решилось. Спасибо за помощь! |
Часовой пояс GMT +3, время: 01:07. |