проверка номера телефона с добавленным вводом - PullRequest
1 голос
/ 20 мая 2010

Я недавно заполнил форму, и когда я добрался до телефонного номера textBox, я заметил некоторые действительно крутые вещи, происходящие. Когда я ввел свой номер, основные символы телефона добавлялись автоматически. Пример:

Я начинаю вводить код города '555'

и мой ввод был изменен на 1 (555)

чтобы проверить, что только что произошло, я забыл на), и он быстро добавил его обратно.

Итак, мой вопрос: как мне получить этот ввод?

Ответы [ 2 ]

4 голосов
/ 20 мая 2010

Я использую библиотеку javascript под названием automask - вы не видите маску, но она не позволит вам печатать что-либо вне маски

например, если ваша маска ### - ### - ####, тогда любые другие символы игнорируются (т. Е. Не 0-9) и тире вводятся автоматически.

Я могу опубликовать библиотеку, если вы хотите взглянуть на

пример реализации

<input type=text name=ssn onkeypress="return autoMask(this,event, '###-##-####');">


// email kireol at yahoo.com
// autoMask - an adaption of anyMask
// 
// this will force #'s, not allowing alphas where the #'s are, and auto add -'s
function autoMask(field, event, sMask) {
    //var sMask = "**?##?####";</p>

<pre><code>var KeyTyped = String.fromCharCode(getKeyCode(event));
var targ = getTarget(event);
keyCount = targ.value.length;
if (getKeyCode(event) < 32)
{
    return true;
}
if(keyCount == sMask.length && getKeyCode(event) > 32)
{
    return false;
}
if ((sMask.charAt(keyCount+1) != '#') && (sMask.charAt(keyCount+1) != 'A' ) && (sMask.charAt(keyCount+1) != '~' ))
{
    field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
    return false;
}

if (sMask.charAt(keyCount) == '*')
    return true;

if (sMask.charAt(keyCount) == KeyTyped)
{
    return true;
}

if ((sMask.charAt(keyCount) == '~') && isNumeric_plusdash(KeyTyped))
    return true;

if ((sMask.charAt(keyCount) == '#') && isNumeric(KeyTyped))
    return true;

if ((sMask.charAt(keyCount) == 'A') && isAlpha(KeyTyped))
    return true;

if ((sMask.charAt(keyCount+1) == '?') )
{
    field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
    return true;
}
return false;

} function getTarget (e) { // IE5 if (e.srcElement) { вернуть e.srcElement; } if (e.target) { возврат e.target; } }

function getKeyCode (e) { // IE5 if (e.srcElement) { вернуть e.keyCode } // NC5 if (e.target) { возврат е. который } }

функция isNumeric (c) { var sNumbers = "01234567890"; if (sNumbers.indexOf (c) == -1) вернуть ложь; еще верните истину;

}

функция isNumeric_plusdash (c) { var sNumbers = "01234567890-"; if (sNumbers.indexOf (c) == -1) вернуть ложь; еще вернуть true;

* *} Тысяча двадцать-один

функция isAlpha (c) { var lCode = c.charCodeAt (0); if (lCode> = 65 && lCode <= 122) { вернуть истину; } еще вернуть ложь; } </p>

функция isPunct (c) { var lCode = c.charCodeAt (0); if (lCode> = 32 && lCode <= 47) { вернуть истину; } еще вернуть ложь; </p>

}

1 голос
/ 20 мая 2010

Если это была страница aspx, они, вероятно, использовали AJAX Control Toolkit MaskedEdit Extender . Существует также плагин Masked Input для jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...