限制电话号码输入字段仅接受6 8和10位数字

时间:2012-02-19 06:45:18

标签: php html

我有一个电话号码输入字段,如下所示:

<input type="text" name="phone" maxlength="10" size="40" value="{$tmp.phone}"><>

我可以在这里申请代码吗?或者我会在外部.php文件中应用函数来执行此操作吗?

代码会是什么样的?

我是所有这些编码新手,需要一些帮助......

3 个答案:

答案 0 :(得分:2)

您可以使用新的HTML5属性pattern。新的浏览器在填写正确之前不会发送表单:

<form>
<input type="text" name="phone" pattern="^[0-9]{6}|[0-9]{8}|[0-9]{10}$" />
<input type="submit" />
</form>

如果用户使用旧版浏览器,则会忽略该属性。在这种情况下,您仍然应该将其视为Daniel和Pheonix推荐的。

答案 1 :(得分:0)

即使在某种程度上检查HTML,也总是在服务器端进行验证。客户端验证总是可以绕过。

在服务器端

$phone = $_GET['phone'];

if(!(strlen($phone)==6 ||strlen($phone)==8 ||strlen($phone)==10)){
  //Error
}

答案 2 :(得分:0)

为了获得更好的用户体验,您可以使用javascript进行验证,出于安全原因,必须使用服务器端验证,如Pheonix所说。

<form id="form_id">
<input id="phone_id" type="text" />
<input type="submit" 
    onclick="if (document.getElementById('phone_id').value.length != 6 
                 && document.getElementById('phone_id').value.length!=8 
                 && document.getElementById('phone_id').value.length!=10) 
                 { 
                     alert('Error message...'); 
                     return false; 
                 }" />
</form>