【问题标题】:Phone number validation html form电话号码验证html表单
【发布时间】:2017-03-13 01:41:37
【问题描述】:

我是 javascript 的初学者,不确定下面的代码出了什么问题。当输入错误的数字时,它不会显示任何警报。感谢您的帮助。该属性的 html 代码是

<li><label for="phonenumber">Phone:</label></li>
<li><input type="tel" name="phonenumber" /></li>

验证码:

function formValidation()  
{  
    var uphone = document.registration.phonenumber;
    {
        if(ValidatePhone(uphone))
    }
    return false;
}

function ValidatePhone(uphone)  
{  
    var phoneformat = /(^\d{3}-\d{3}-\d{4})$/;  
    if(uphone.value.match(phoneformat))  
    {  
        return true;  
    }  
    else  
    {  
        alert('You have entered an invalid phone number!');  
        uphone.focus();  
        return false;  
    }  
}

【问题讨论】:

  • 能否提供您的html或调用ValidatePhone的代码?
  • 我通过 onchange 处理程序 (document.getElementById("uphone").addEventListener("change", (event) =&gt; ValidatePhone(event.target));) 将您的函数附加到文本输入,它似乎工作正常
  • 不要验证这样的表格,因为在其他国家/地区电话路径不同,例如在意大利是:+39 111-1111111
  • 感谢@Tibrogargan。这就是我所拥有的。我可以使用相同的方法验证表单中的其他元素,但对于电话号码,它不会显示警报消息。
  • 不要这样做:让浏览器来做。看到这个问题:stackoverflow.com/questions/2813997/…

标签: javascript


【解决方案1】:

这个函数是一个很大的语法错误(会阻止整个脚本运行):

function formValidation()  
{  
    var uphone = document.registration.phonenumber;
    {
        if(ValidatePhone(uphone))
    }
    return false;
}

函数中的内括号在此处不做任何事情,并且 if 语句后面没有语句(或块,就此而言),因此直接跟在它后面的 } 会导致 SyntaxError。你的意思是:

function formValidation()  
{  
    var uphone = document.registration.phonenumber;
    ValidatePhone(uphone);
    return false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-30
    • 2012-03-04
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多