@mUchenik

Как сделать маску ввода телефонного номера?

Доброго дня, уважаемые специалисты!
Прошу вашего совета:
В woocommerce, на странице оформления заказа, в пункте ввода телефонного номера, хочу реализовать маску вида: +7(___)-__-__-___ (по умолчанию), что бы ни какие другие знаки кроме цифр не вводились.
Но проблема в том, что я не могу понять, какой файл редактировать и что писать.
Нашел разные плагины, но ума не приложу как прописывать их правильно.
Пробовал этот digitalbush.com/projects/masked-input-plugin ни чего не сработало :(
(хотя скорее всего руки кривые )
Может ли кто то рассказать "На пальцах" как установить?
Не посчитайте за наглость.... Не смог сам разобраться.
Вот что я делал:
В файле header.php, перед прописал:
<script type="text/javascript" src="zerif-lite/js/jquery-1.7.2.min.js" ></script>
<script type="text/javascript" src="zerif-lite/js/jquery.maskedinput-1.3.min.js"></script>
<script>
$("#billing_phone").mask("(999) 99-99-999");


$("#billing_phone").on("blur", function() {
    var last = $(this).val().substr( $(this).val().indexOf("-") + 1 );
    
    if( last.length == 3 ) {
        var move = $(this).val().substr( $(this).val().indexOf("-") - 1, 1 );
        var lastfour = move + last;
        
        var first = $(this).val().substr( 0, 9 );
        
        $(this).val( first + '-' + lastfour );
    }
});
</script>


Если важно то шаблон Zerif Lite
  • Вопрос задан
  • 799 просмотров
Решения вопроса 1
когда выполняется скрипт в хедере, элемент #billing_phone еще не создан браузером, вот и не работает.
обернуть надо
$(document).ready(function() {
$("#billing_phone").mask("(999) 99-99-999");


$("#billing_phone").on("blur", function() {
    var last = $(this).val().substr( $(this).val().indexOf("-") + 1 );
    
    if( last.length == 3 ) {
        var move = $(this).val().substr( $(this).val().indexOf("-") - 1, 1 );
        var lastfour = move + last;
        
        var first = $(this).val().substr( 0, 9 );
        
        $(this).val( first + '-' + lastfour );
    }
});
}


или переместить ваш код в футер
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@void01
или переместить ваш код в футер

или использовать delegate
api.jquery.com/delegate
Description: Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements.

хотя если элемент единственный, судя по селектору правильней будет послушать предыдущего оратора -))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы