首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jQuery中验证美国电话号码有困难-需要和PhoneUS

在jQuery中验证美国电话号码有困难-需要和PhoneUS
EN

Stack Overflow用户
提问于 2011-01-06 19:03:37
回答 1查看 5.1K关注 0票数 2

我正在接管一个项目的现有分支程序,该项目的代码遍布各地,而且我很难用以下规则验证电话号码字段:

-Required -Conforms到美国的电话号码

我查看了所有的jQuery站点,并尝试了以下当前代码的多个实现.

头代码:

代码语言:javascript
运行
复制
    <script>
  $(document).ready(function(){
    $("#the_form").validate();
  });
  </script>

      <script>
    $(document).ready(function(){
    jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, ""); 
    return this.optional(element) || phone_number.length > 9 &&
        phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");
  </script>

    <script>
    $("#col_5_row_1").rules("add", {
 phoneUS: true
 }
});
    </script>

输入代码:

代码语言:javascript
运行
复制
<input type="text" title="Phone" class="required phoneUS" id="col_5_row_1" name="col_5_row_1">

这验证了“必需”,而不是“phoneUS”。如果我尝试验证所需的+电子邮件,那也是有效的。

我尝试过将自定义规则放在验证函数的上方和下面,我尝试过不使用规则(“add”)函数,而且似乎每个组合都没有。我很困惑。

有什么想法吗?谢谢一吨。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-06 20:50:16

因此,我不知道为什么该方法不返回消息,但它正在运行。但是,为了显示一条信息,你可以这样做:

代码语言:javascript
运行
复制
$(document).ready(
    function()
    {
        $.validator.addMethod("phoneUS",
            function(phone_number, element)
            {
                phone_number = phone_number.replace(/\s+/g, ""); 
                return this.optional(element) || phone_number.length > 9 &&
                    phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
            },
            "Please specify a valid phone number");

        $("#the_form").validate(
        {
            rules: { col_5_row_1: { required: true, phoneUS: true } },
            messages: { col_5_row_1: { required: "required", phoneUS: "US format" } }
        });
    });

以下也是一个有用的例子:

http://jsfiddle.net/GcATB/

编辑:我刚刚意识到的另一件事是,还有一个额外的方法文件,它是验证器的扩展名,其中包含这个方法和其他方法。您也应该检查这一点,而不是为phoneUS编写自己的代码。

http://ajax.microsoft.com/ajax/jquery.validate/1.7/additional-methods.js

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4618690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档