Добавление знаков в номер телефона
Добрый день!
Подскажите пожалуйста можно ли сделать автоматическое добавление знаков в номере телефона? Т.е. например я ввожу номер из 10 цифр (9041112233) и в поле должно автоматически подставиться +7(904)111-22-33 |
|
Сработает при снятии фокуса с поля.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<input type="text" id="someid">
<script>
document.getElementById('someid').onchange = function() {
if ( /^\d{3}\d{3}\d{2}\d{2}$/.exec(this.value) ) {
this.value = this.value.replace(/(\d{3})(\d{3})(\d{2})(\d{2})/, function(str, aaa, bbb, cc, dd) {
return '+7(' + aaa + ')' + bbb + '-' + cc + '-' + dd;
});
}
}
</script>
</body>
</html>
|
Цитата:
|
Цитата:
|
Вариант маски для ввода номера телефона :write:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<input oninput="proverka(this)" onfocus="setCursorPosition(3, this)" >
<script>
function setCursorPosition(pos, elem) {
elem.focus();
if (elem.setSelectionRange) {
elem.setSelectionRange(pos, pos);
} else if (elem.createTextRange) {
var range = elem.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
function proverka(el) {
var matrix = "+7(123)456-78-90",
i = 0,
val = el.value.replace(/\D/g, '');
!val && (val = "7")
matrix = matrix.replace(/\d/g, function (a) {
return val.charAt(i++) || "_"
})
el.value = matrix;
i = matrix.lastIndexOf(val.substr(-1));
i < matrix.length && i > 2 ? i++ : (i = 3)
setCursorPosition(i, el)
};
document.querySelector('input').oninput()
</script>
</body>
</html>
|
alert("9041112233".replace(/^(\d{3})(\d{3})(\d{2})(\d{2})$/, '+7($1)$2-$3-$4'));
|
Спасибо!
А как это значение в value передать? Я проверку делаю на заполненность поля и получается что в value пусто и форма соответственно не отправляется |
| Часовой пояс GMT +3, время: 03:32. |