Так что я пытаюсь сделать правильный номер телефона после того, как пользователь вводит их число.Функция jQuery работает в хромированном, но не в другом браузере
Например, форма позволяет им вводить числа, а не что иное. Итак, когда они набирают 1234567890, он переформатирует его на (123) 456-7890 на фокус.
Если я должен был запустить его в другом браузере, он отображается как ((12) 3) -456-, потому что он снова запускает код после фокуса, чтобы он делал это дважды.
Я смог сделать это на хроме, но он не работает ни в каких других браузерах.
Вот мой код:
$('#number').focusin(number_remove);
$('#number').keyup(number_check);
$('#number').focusout(number_add);
function number_remove() {
var number = $('#number').val();
var newnumber = number.replace(/\D/g,'');
$('#number').val(newnumber);
}
function number_check() {
var number = $('#number').val();
if(number != '') {
var newnumber = number.replace(/\D/g,'');
$('#number').val(newnumber);
if(number.length >= 10) {
$('#number').css('background', 'rgba(54, 255, 0, 0.1)');
}else{
$('#number').css('background', 'rgba(255, 0, 0, 0.1)');
}
}else{
$('#number').css('background', 'rgba(128, 128, 128, 0.1)');
}
}
function number_add() {
var number = $('#number').val();
if(number != ''){
var numbersub1 = number.substring(0, 3);
var numbersub2 = number.substring(3, 6);
var numbersub3 = number.substring(6, 10);
var finalnumber = '('+numbersub1+') '+numbersub2+'-'+numbersub3;
$('#number').val(finalnumber);
}
}
@DyrandzFamador В других браузерах, если я напечатал 1234567890 он показывает на ((12) 3) -456-, когда он побежал функции. –
idk, работает в моей мозилле http://jsfiddle.net/cuw303dy/1/ –
Если я добавлю задержку, я обнаружил, что она работает на каждом браузере, но она не работала в Firefox или сафари для меня. Не знаю, почему –