jQuery 验证:需要有效的电话或有效的电子邮件

2024-06-23

使用 jQuery 验证的第一天,但​​不是使用 jQuery 的第一天。非常简单的问题:我有三个文本输入:姓名、电话和电子邮件。我想要求提供姓名(不费吹灰之力)和电话或电子邮件,并确保电话或电子邮件中的输入有效。我已经尝试过:

$(document).ready(function() {
$("#contactForm").validate({
    debug:true,
    rules: {
        name: {
            required: true
        },
        email: {
            email:true,
            required: function(element){
                !$("#phone").valid();   
            }
        },
        phone: {
            phoneUS: true,
            required: function(element){
                !$("#email").valid();   
            }
        }
    },
    messages: {
        name: "Please specify your name",
        email: {
            required: "Please enter a valid email"
        },
        phone: "Please enter a 10 digit phone number"
    }
});

});

但它失败了,因为每个有效性检查都会调用另一个,无限递归并使浏览器崩溃。

必须有一些简单的方法来做到这一点,但我花了将近两个小时,但它却让我无法理解:(


您可以通过以下方式创建自己的方法

$.validator.addMethod(
    "email_or_phone_number", 
    (value, element) => {
        this.optional(element) || /*is optional*/
        /^\d{10,11}$/.test(value) || /*is phone number*/
        /\S+@\S+\.\S+/.test(value) /*is email*/
    },
    "Please enter either phone number or e-mail"
);

现在您可以使用方法“email_or_phone_number” 对于多数据情况:

<input type="text" class="{email_or_phone_number:true}" value="" />

您可以根据自己的需要更改方法内的正则表达式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 验证:需要有效的电话或有效的电子邮件 的相关文章

  • 如何在 TypeScript 中扩展 JQuery 函数

    我正在 TypeScript 上重写一些 JS 代码 并遇到模块导入问题 例如 我想写我的toggleVisiblity功能 这是代码
  • 在 ASP.NET 回发时保持水平和垂直滚动位置

    编码采用 ASP NET C 我有一个 gridview 有 1000 条记录 我正在内联编辑其中一行 单击 更新 时 我希望我的网格位于回发发生之前的确切 x y 位置 如果您正在考虑使用 Page 指令 MaintainScrollPo
  • 对象预期错误、javascript、jQuery

    我在 javascript 文件中收到一个对象预期错误 在这种情况下 这是否意味着 jQuery 文件未正确包含 导致错误的行是 function 浏览器中的错误是 Message Object expected Line 6 Char 1
  • 如何创建 jqGrid 上下文菜单?

    我正在尝试在 jqGrid 上创建一个上下文菜单 针对每一行 但找不到如何执行此操作 我目前正在使用 jQuery 上下文菜单 有更好的方法吗 但它适用于整个网格 而不是一个特定行 即无法对其执行行级操作 请帮助我 谢谢 document
  • Bootstrap 下拉按钮名称在单击时发生变化

    我正在使用下拉按钮 4 个按钮 来过滤项目中的内容 并且我希望按钮名称更改为选定的 这样用户就不会忘记他 她在哪里 见图 这怎么可能 提前谢谢 这是pen http codepen io aktuna pen FqKjb 您可以使用 jQu
  • 使用 Javascript 或 jQuery 按第一列快速对表格进行排序

    我有一个动态填充的表FullCalendar 问题是FullCalendar不关心其原始顺序 该表如下所示 table thead tr th th th Date th th hours th tr thead tbody tr td c
  • 用于动态实时事件的 Tipsy jquery 插件无法正常工作

    我在用着醉酒的 jquery 插件 http onehackoranother com projects jquery tipsy 为动态显示的元素创建工具提示 工具提示适用于非动态元素 因此我肯定包含了我需要的所有内容 我正在使用 jqu
  • 在JQuery中获取上个月的第一个和最后一个日期

    我有这个脚本 var today new Date var dd today getDate var ddd today getDate 1 var dddd today getDate 2 var mm today getMonth 1
  • Gridstack.js 从 JSON 获取位置

    我现在正在与Gridstack js https github com troolee gridstack js这对我有好处 但是 总是有一个但是 有人知道我如何定位 JSON 数组中定义的 grid stack item 吗 HTML 示
  • AppCache清单错误

    Edit 我不得不删除一些链接 我的清单页面似乎导致我的网页出现错误 当您第一次访问该页面时 所有内容似乎都已成功缓存 但刷新后无法获取存在的文件 我在这里制作了一个快速测试页面来查看 这是我的清单文件 这是一个由 php 和 javasc
  • 如何禁用 html 中特定元素的复制

    在这里 当选择 3 个元素时 我遇到了复制选项的问题 所有三个元素都被复制 但是 我有一个 Jquery 函数来禁用中间元素的复制 我如何在选择 3 个元素时禁用它 但是 如果我单独选择中间元素 它就不会复制 notcp bind cut
  • jQuery 相当于 YUI StyleSheet Utility?

    jQuery 或其插件之一 是否具有与YUI 样式表实用程序 http developer yahoo com yui 3 stylesheet StyleSheet Utility 能够从头开始创建新的样式表 以及修改作为来自同一域的元素
  • 使用 jQuery 禁用 CSS 继承

    有没有办法使用 jQuery 或通用 javascript 在块级别禁用 CSS 继承 例如 如果我通过 javascript 拉入外部资源 例如 Pastie org 它们将拥有自己的 CSS 而我的 CSS 会覆盖它们 我想将嵌入代码放
  • jQuery:append() 与appendTo()

    我正在测试 jQuery append vs appendTo 使用以下代码的方法 div gt id id text this text appendTo div type item id div type item id append
  • 如何使用 html 标签包装 window.getSelection().getRangeAt(0) 中的文本选择?

    如何从 window getSelection getRangeAt 0 中进行选择并用 HTML 标签 例如 span 或 mark 包围它 我更喜欢直接的 javascript 或 jQuery 解决方案 我可以使用警报输出选定的文本
  • JavaScript 变量带有一个我需要在 Html.ActionLink 中使用的 ID

    我的 jQuery 代码中有一个 JavaScript 变量 其中包含一个我需要在我的Html ActionLink但它不起作用 Html ActionLink Genomf r AnswerForm AnswerNKI new id go
  • jquery 按钮点击背景颜色变化

    为什么这不起作用 jquery button click function go css background color yellow html table tr td hello td table gt tr table
  • 在 Bootstrap 选择器上使用 jQuery 取消选择选项

    我对一些 UI 元素使用 Bootstrap SelectPicker 它允许用户选择多个选项并将其呈现在段落标签中的屏幕上 他们还应该能够删除选定的选项 这是我的代码 用于将选定的选项渲染到屏幕上 以便每个选项旁边都会显示一个 X 单击它
  • chrome中使用jquery的图像高度问题

    img height 回报0在 Chrome 中 但在 IE 和 Firefox 中返回实际高度 在 Chrome 中获取图像高度的实际方法是什么 正如 Josh 提到的 如果图像尚未完全加载 jQuery 将不知道尺寸是多少 尝试这样的操
  • 如何防止 Bootstrap Navbar Toggle 下推内容?

    我将 Bootstrap 与静态顶部导航栏一起使用 如下所示

随机推荐