首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建一个jQuery验证方法,用于查询电话号码或特定文本

创建一个jQuery验证方法,用于查询电话号码或特定文本
EN

Stack Overflow用户
提问于 2014-08-27 00:03:20
回答 2查看 483关注 0票数 0

我正在使用表单上的jQuery验证插件。“我的表单”的一个部分允许用户选择是否要接收文本消息或电子邮件通知。如果用户选择获取文本,我希望验证器检查此输入以确保正确输入数字。

如果用户选择接收电子邮件,我会输入电话号码,得到的值是“”。

问题是,当表单提交并运行验证时,它会检查电话输入,以查看是否输入了有效的电话号码格式。显然,由于‘’不是数字,我会得到错误。

我正在努力添加一个自定义的方法来检查是否有一个有效的美国电话号码或‘移动未选择’的存在。

可能需要你们的帮助。到目前为止,它看起来是这样的:

代码语言:javascript
运行
复制
jQuery.validator.addMethod("testPhone", 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}$/) || phone_number.val('Mobile not chosen');
}, "Please specify a valid phone number");

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-27 00:58:21

如果不能测试它,我认为phone_number已经是一个字符串了,因此,phone_number.val('Mobile not chosen')不会执行您正在尝试的操作,val()从输入中获取值。也许试着:

代码语言:javascript
运行
复制
phone_number.match(/^(\+?1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/) || phone_number === 'Mobile not chosen';

或者假设参数element是输入字段

代码语言:javascript
运行
复制
phone_number.match(/^(\+?1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/) || element.val() === 'Mobile not chosen';

看看上面提到的插件和那个方法,它正在测试输入是否是可选的第一个this.optional(element),所以当用户首先输入电子邮件地址时,可能有一种方法只需将元素切换到可选。

票数 0
EN

Stack Overflow用户

发布于 2014-08-27 15:27:59

除非您在操作中显示足够的代码,否则没有人能够非常具体地回答问题。

有两种可能的解决方案..。

1) require_from_group方法作为 file的一部分。此方法将允许您指定一组y字段中只有x字段是“必需的”。请参阅该文件的源代码以供使用。因为我看不到您的HTML或.validate()方法,所以我不确定这是否适用于您。

2) methods将允许您动态更改字段中的规则。在您的情况下,如果用户选择文本,请在字段上调用.rules('add')添加电话号码规则,并调用.rules('remove')删除电子邮件规则。然后,如果用户选择电子邮件,调用.rules('add')添加电子邮件规则和.rules('remove')删除电话号码规则。请参阅:http://jqueryvalidation.org/rules/

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

https://stackoverflow.com/questions/25516978

复制
相关文章

相似问题

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