【发布时间】:2015-09-02 01:44:45
【问题描述】:
因此,在用户输入电话号码后,我试图让表单更正电话号码。
例如,表单只会让他们输入数字,没有其他内容。 因此,当他们键入 1234567890 时,它将在焦点输出上将其重新格式化为 (123) 456-7890。
如果我要在另一个浏览器中运行它,它会显示为 ((12) 3) -456-,因为它会在聚焦后再次重新运行代码,所以它会执行两次。
我可以在 chrome 上做到这一点,但它在任何其他浏览器中都不起作用。
这是我的代码:
$('#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,在我的 mozilla 中工作 jsfiddle.net/cuw303dy/1
-
如果我添加延迟,我发现它实际上适用于每个浏览器,但它不适用于我的 firefox 或 safari..我不知道为什么
-
在评论中,它在您的浏览器中不起作用? (没有延误)
标签: javascript jquery google-chrome