使用 JavaScript 进行表单验证

2023-12-15

我正在尝试使用 JavaScript 验证表单,但我有点坚持在字段旁边显示一条消息说“此字段是必需的”。我该怎么做呢?抱歉,我对 JavaScript 很陌生。 这是我的js代码:

var allFieldsRequired = true;
function specialPostcode(postalCode)
{
    var re = /^[TA]{2}([1-14]|22|15){1,2}/;
    if(re.test(postalCode))
    {
        alert("You have been entered into a competition to win special prize!!");
    }

}

function validatePostcode(postalCode)
{
    var re = /^[A-Z]{2}\d{1,2}\s\d{1}[A-Z]{2}$/;
    if(!re.test(postalCode))
    {
        alert('Postcode is not valid');
    }
    return re.test(postalCode);
}

function validateCard(promoCardNumber)
{
    var re = /^[A-Z]{1}([A-Z]|\d){4}\s?([A-Z]|\d){5}\s?([A-Z]|\d){3}\d{1}$/;
    if(!re.test(promoCardNumber))
    {
        alert('Promotional card number is not valid');
    }
    return re.test(promoCardNumber);
}

function validate(val)
{
    if(val == "")
    {
        return false;
    }
    else
    {
        return true;
    }
}

function verification(orderForm)
{
//set boolean flag
var valid = true;
if(allFieldsRequired)
{
    // validations
    if(valid)
    {
        valid = validatePostcode(orderForm.postalCode.value);
    }
    if(valid)
    {
        valid = validateCard(orderForm.promoCardNumber.value);
    }
    if(valid)
    {
        valid = validate(orderForm.firstName.value);
    }
    if(valid)
    {
        valid = validate(orderForm.surname.value);
    }
    if(valid)
    {
        valid = validate(orderForm.phoneNumber.value);
              }
    if(valid)
    {
        valid = validate(orderForm.streetName.value);
    }
    if(valid)
    {
        valid = validate(orderForm.city.value);
              }                                                          
    if(valid)
    {
        valid = validate(orderForm.billEmailAddress.value);
    }
    if(valid)
    {
        valid = validate(orderForm.billPhoneNumber.value);
    }
    if(valid)
    {
        valid = validate(orderForm.billCardNumber.value);
    }
    if(valid)
    {
        specialPostcode(orderForm.postalCode.value);
    }

}
else
{
    // validations
    if(valid)
    {
        valid = validatePostcode(orderForm.postalCode.value);
    }
    if(valid)
    {
        valid = validateCard(orderForm.promoCardNumber.value);
    }
    if(valid)
    {
        specialPostcode(orderForm.postalCode.value);
    }
}
return valid;
} // end of verification

这是我的表单的 HTML 代码:

<form id="orderForm" method="post" action="x">
            <table id="formTable" cellpadding="5">
                <tr>
                    <td>
                        <h3>Shipping and Billing Information</h3>
                    </td>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                    <td>First Name</td>
                    <td><input id="firstname" type="text" name="firstName" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Surname</td>
                    <td><input id="surname" type="text" name="surname" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Contact Telephone Number</td>
                    <td><input id=phoneNumber" type="text" name="phoneNumber" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Street Name</td>
                    <td><input id="streetName" type="text" name="streetName" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>City</td>
                    <td><input id="city" type="text" name="city" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Postal Code</td>
                    <td><input id="postalCode" type="text" name="postalCode" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Email address</td>
                    <td><input id="emailAddress" type="text" name="emailAddress" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Contact Telephone Number</td>
                    <td><input id="billPhoneNumber" type="text" name="billPhoneNumber" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Promotional card</td>
                    <td><input id="promoCardNumber" type="text" name="promoCardNumber" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Credit Card Number</td>
                    <td><input id="billCardNumber" type="text" name="billCardNumber" maxlength="30" /></td>
                </tr>
                <tr>
                    <td>Credit Card Type</td>
                    <td>
                        <select id="billCardType" name="billCardType">
                            <option value="...">
                                Choose your card...
                            </option>
                            <option value="visa">
                                Visa
                            </option>
                            <option value="mastercard">
                                Mastercard
                            </option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Instructions</td>
                    <td><textarea id="instructions" name="instructions" rows="8" cols="30">Enter your requirements here or comments.</textarea></td>
                </tr>
                <tr>
                    <td colspan="2"><input id="submit" type="submit" name="Submit" value="Submit" onclick="return verification(document.getElementById('orderForm'));" /></td>
                </tr>
            </table>
        </form>

在每个字段附近添加一个范围,以便您可以将其用于验证消息:

<td>First Name</td>
<td>
  <input id="firstname" type="text" name="firstName" maxlength="30" />
  <span id="firstname_error"/>
</td>

之后,只需在此处添加错误消息,而不是:

alert('You need to complete this field')

你会使用:

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

使用 JavaScript 进行表单验证 的相关文章

  • chrome 调试器承诺在暂停时不会解析?

    也许我没有正确调试承诺 但基本上 如果您在断点处停止并运行异步代码 它实际上不会完成 直到您恢复执行为止 这是一个问题 调试器允许您快速试验多个 api 方法 但如果您恢复它 您就不能 debugger now type the follo
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • 使用 moment.js 检查输入日期是否为星期一

    好吧 我想检查日期是否是星期一 例如 var myDate new Date moment myDate DD MM YYYY dayIs monday 在我的国家 一周的第一天是星期一 所以 我真的想检查输入日期是否是一周的开始 我尝试使
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 类型“typeof import("/home/kartik/Desktop/Ecommerce/ecommerce/node_modules/firebase/index")”上不存在属性“auth”。 TS(2339)

    我是 FireBase 的初学者 我正在尝试使用 Angular 通过 FireBase 实现 Google 登录 我在 auth 时收到上述错误 我特此附上login component ts和package json package l
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式

随机推荐

  • 通过firestore安全规则引用Firebase实时数据库数据

    我想使用实时数据库中的数据来允许用户访问 firestore 数据库中 是否可以从 firestore 安全规则引用实时数据库中的节点 目前在安全规则中还无法实现这样的数据库产品之间的交叉 请随时归档功能对此提出要求 但是 您可以编写在 C
  • 我应该使用哪个框架在 Android 上运行 OData API? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在为 Android 手机创建一个程序 它将通过 Web 服务查询 检索然后处理来自 OData 提供商的 OData 请您告诉我哪个工具包最适
  • 丢弃来自套接字的输入

    From Socket文档 关机输入 public void shutdownInput throws IOException 将此套接字的输入流放置在 流末尾 发送到套接字输入流端的任何数据都会被确认 然后默默地丢弃 如果在套接字上调用
  • 如何在真实设备中查看我的应用程序的 sqlite 数据库的内容?

    我想在我部署它的设备中查看在我的应用程序中创建的数据库的内容 我可以在 shell 中使用 sqlite 命令并在模拟器中查看 但不能在真实设备中查看 有谁知道如何在真实设备中执行此操作吗 如果应用程序被标记为可调试 则不需要 root 您
  • Bootstrap 翻转卡与 css3 转换

    我想使用 CSS3 变换创建引导翻转卡 我确实是从这个开始的工作和基本示例 但是我想修改它以具有固定高度的卡和一些小的增强功能 特别是 当用户单击我在右上角创建的图标时 我需要翻转卡片 我已经修改了代码 如你所见here 问题是卡片在正确翻
  • Ruby 的 public_send 方法有什么等价的吗?

    在 Ruby 中 要构造方法的名称并将其发送到对象 可以执行以下操作 class Foo def foo FOO end end Foo new public send foo gt FOO Foo new public send foo
  • cpp (C++) 中的 sha1 函数

    首先我要说的是我对 C 一无所知 我用 google 搜索了一下 没有任何东西可以让我理解如何在 C 中使用 SHA1 不过找到了这个目标 C SHA1但它是关于目标 c 我不确定它是否相同 我需要执行以下操作 我有很多文件 我通过执行 m
  • 什么是 Scala 上下文和视图边界?

    简单来说 什么是上下文和视图边界 它们之间有什么区别 一些易于理解的示例也很棒 我认为这个问题已经被问过 但是 如果是这样 这个问题在 相关 栏中并不明显 所以 这里是 什么是视图绑定 A 视图绑定是 Scala 中引入的一种机制 可以使用
  • 我可以提取sql中重复的提取记录吗?

    在我的表中 我有以下列 id name gender 我想提取所有重复的名称 但我不想扫描所有数据库来一一统计每条记录 我只想知道谁有相同的名字 例子 0 mary F 1 tom M 2 peter M 3 mary F 4 chris
  • 使用 PredicateBuilder、LINQPad 和运算符 ANY 生成 SQL

    I 之前问过关于 Linq To Entities 中的链接条件的问题 现在我用LinqKit一切正常 我想查看生成的 SQL 并阅读后这个答案 I use LinqPad 这是我的声明 var predProduct PredicateB
  • 在继续之前等待另一个可观察的结果

    我不知道是否应该为此发布任何代码 但如果需要的话我会的 我有一个 Angular2 指令 MyDirective和一项服务MyService 该服务在其构造函数中进行 http 调用以获取某些内容并存储在其中this list 指令注入服务
  • Oracle:为什么不使用并行执行?

    看下面的查询 如果我评论子查询 它会使用并行执行 否则不会 查询完成后 SELECT parallel c 20 1 SELECT 2 FROM DUAL FROM DUAL c 你可能已经找到答案了在文档中 仅当满足以下条件时 SELEC
  • 当提供的字符串不为空时 string.IsNullOrEmpty 返回 true

    我有一个单元测试 它调用传入字符串的对象的方法 被调用的方法要做的第一件事就是检查字符串是否为 null 或空 但是 无论 filePath 的值是什么 对 string IsNullOrEmpty 的调用都是 true 见下图 我在这里错
  • 如何在 Scala 中编写返回 Option[List] 的函数?

    假设我有两个函数来获取订单和订单商品 def getOrders Option List Int def getOrderItems orderId Int Option List Int 请注意 两个函数都返回Option List 因为
  • SendInput VB 基本示例

    我希望有人可以提供帮助 我试图找到模拟键盘命令的 SendInput 代码的示例 我希望找到记事本窗口并输入测试消息 我最初在我正在从事的一个项目中使用 SendKeys SendKeys 功能使我能够将键盘命令转发到我们在工作场所使用的定
  • Google App Engine NDB:如何存储文档结构?

    来自 App Engine NDB文档 NDB API 在无模式对象中提供持久存储 数据存储 它支持自动缓存 复杂的查询和 原子交易 NDB 非常适合存储结构化数据 记录 我想使用 NDB 创建如下结构 其中每个实例如下所示 city SF
  • lex 有问题

    我的lex如下 LNUM 0 9 DNUM 0 9 0 9 0 9 0 9 LNUM printf t ECHO printf r n DNUM printf t ECHO printf r n 但事实证明它只能匹配像这样的数字4 12 2
  • 安装 mpi4py

    我正在尝试在我的 Linux 机器上安装 mpi4py 我最近安装了 anaconda 4 1 1 根据他们的文档 该软件包应该附带 mpi4py 2 0 0 当我尝试用 验证 时conda list 我在列表中找不到该包 我努力了 pip
  • 如何通过Socket发送字符串数组对象?

    我有字符串数组对象 可以说 String names new String 7 我还通过在客户端系统上使用 ObjectOutputStream 将其存储到文件中来使该对象持久化 我正在使用 ObjectInputStream 读取存储的对
  • 使用 JavaScript 进行表单验证

    我正在尝试使用 JavaScript 验证表单 但我有点坚持在字段旁边显示一条消息说 此字段是必需的 我该怎么做呢 抱歉 我对 JavaScript 很陌生 这是我的js代码 var allFieldsRequired true funct