Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Маска для поля телефон (https://javascript.ru/forum/dom-window/49436-maska-dlya-polya-telefon.html)

karakym 13.08.2014 11:35

Маска для поля телефон
 
Доброго времени суток форумчане!
нужна ваша помощь, есть поле для ввода телефона, на нем висит маска:
$(function(){
	$.mask.definitions["1"] = "[0123456789]";
	$(".phone").mask("+38 (099) 999-99-99",{placeholder:" "});
});

вот тут, если нажать на поле телефон, вы увидите маску +38(0...
Я хочу сделать так что бы пользователям России выводилось +7
Ну или, если есть идеи поудобней, то я против не буду

ixth 13.08.2014 11:53

Ммм… По-моему, ты никак не узнаешь из js локаль юзера. А даже если и узнаешь, то у юзера из Украины может стоять русская и наоборот. Так что тебе нужно юзать geoip на сервере и передавать на клиент, а там, в зависимости от страны, менять маску.

karakym 13.08.2014 11:55

Хорошо, а можно сделать, что бы при нажатии на это поле сначало был селект с выбором страны, после выбора он заменялся на необходимую маску?

ixth 13.08.2014 12:09

Можно. У плагина есть метод unmask, так что, наверное, можно инициализировать инпут заново с другими параметрами.

<label><input type="radio" value="ua" name="lang"/>ua</label>
<label><input type="radio" value="ru" name="lang"/>ru</label>
<script src="//yandex.st/jquery/1.8.0/jquery.js"></script>
<script>
$('[name="lang"]').on('change', function (e) {
    if (e.target.value === 'ua') {
        $(".phone").unmask();        
        $(".phone").mask("+38 (099) 999-99-99",{placeholder:" "});
    } else if (e.target.value === 'en') {
        $(".phone").unmask();        
        $(".phone").mask("+7 (099) 999-99-99",{placeholder:" "});
    }
});
</script>

karakym 13.08.2014 12:17

это мне нужно создать селект с 2-мя опциями их значения "ua" и "en"

karakym 13.08.2014 12:19

А подскажите еще, что может быть за беда?
Когда локально НЕ-заполняю форму и жму отправить, курсор кидает на не заполненное поле, то есть пока не заполню, форма не отправится.
Но когда заливаю этот же скрипт на хостинг, там проверки не ведет, отправляет даже не заполненные поля! почему и как исправить?

Aetae 13.08.2014 12:22

F12 и смотри, что тебе умная консоль скажет.

oit 15.08.2018 08:39

Здравствуйте,
подскажите пожалуйста как тут можно сделать тоже самое?

<script src="<?php echo get_template_directory_uri(); ?>/includes/js/jquery.maskedinput.min.js"></script>
<script type="text/javascript">
jQuery(function($) {
$.mask.definitions['~']='[+-]';
$('#cp_contact_number').mask('+38 (999) 999-99-99');
});
</script>


Часовой пояс GMT +3, время: 15:25.