首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery验证条件电话US

Jquery验证条件电话US
EN

Stack Overflow用户
提问于 2013-06-06 07:49:23
回答 2查看 1K关注 0票数 0

使用带有phoneUS方法的Jquery验证插件。

下面的代码(精简了一点)在任何地方都可以运行,当然IE除外,IE是我的开发人员存在的祸根。

代码语言:javascript
运行
复制
    <script type="text/javascript">
      jQuery(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}$/);
    }, "");

    jQuery("#myform").validate({
            rules: {
            EmailF: {
                required: true,
                email: true
        },

         PhoneF:{
            required: "#mycheck:checked",
            phoneUS: true

        },

            },

            messages: {
                 EmailF: " "
            },
 });
});

    </script>

基本上,我有一个复选框(#mycheck),当选中时,需要验证PhoneF字段。如果未选中,则不需要验证。

正如上面提到的,在FF,Chrome,Safari,甚至在IPhone上都可以工作,但IE无法绕过这个问题。

我尝试了几种不同的方法,将必填字段转换为函数,以检查复选框是否被IE选中。

我们非常感谢您的帮助!

EN

回答 2

Stack Overflow用户

发布于 2013-06-07 02:53:44

你没有提到哪个版本的资源管理器给你带来了麻烦,但你可以尝试以下一种或多种方法来让你的依赖方法工作……

1)较旧版本的资源管理器会被尾随逗号卡住。为了安全起见,删除代码中的两个尾随逗号。

代码语言:javascript
运行
复制
rules: {
    EmailF: {
        required: true,
        email: true
    },
    PhoneF: {
        required: "#mycheck:checked",
        phoneUS: true
    }, // <-- REMOVE this comma
},
messages: {
    EmailF: " "
}, // <-- REMOVE this comma

2)这段代码是编写依赖规则的另一种方式...

代码语言:javascript
运行
复制
PhoneF: {
    required: function(element) {
        return jQuery('#mycheck').is(':checked');
    },
    phoneUS: true
}

演示:

3)使用depends子规则的也是一种有效的方法...

代码语言:javascript
运行
复制
PhoneF: {
    required: {
        depends: function(element) {
            return jQuery('#mycheck').is(':checked');
        }
    },
    phoneUS: true
}

演示:

票数 0
EN

Stack Overflow用户

发布于 2013-10-05 09:20:10

如果我可以建议..。

将"(|x\d{1,4})“添加到扩展的匹配项,例如: 1(999) 999-9999 x123

应像-?\d{4}(|x\d{1,4})$/那样结束

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

https://stackoverflow.com/questions/16951675

复制
相关文章

相似问题

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