- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个输入的表单,我想验证所需的输入。
container.all("input").each(function(){
if(this.hasAttribute("required")){
if((this.val()==="") {
undentifiedFunction()
}
}
(错误地)未定义 undentifiedFunction(),它会根据我的需要验证输入。我应该如何正确地做到这一点?
最佳答案
您可能想退后一步,看看表单验证的整体情况。在这里要求一个简单的代码片段会给你带来问题,直到你明白你真正需要先做什么。
您需要验证每个输入字段,如果失败,那么您需要用红色边框突出显示该输入,并可以选择打开输入下方的文本消息,解释问题所在。我们的想法是对非程序员的最终用户尽可能友好。
用户需要知道信用卡号字段不能包含字母。或者邮政编码字段的长度不能为 3 个字符。或者电话号码字段的长度不能为 5 位数字。他们可能会尝试添加这些字符或在长表单上意外地做错事情(想想:航空公司预订网站)。因此,您可以为所有验证规则创建一个很长的 if/else-if/else 或 switch/case 语句列表,但是有一种更好的方法来进行表单验证。
我建议客户端工作是构建一个正则表达式的 JSON 对象,它检查有效输入字段值的合法模式。 RegEx 字符串将根据字符串规则确定用户的输入是否有效。对于无效者,您可以通过添加“.invalid”类名来标记字段。您还可以使用 jQuery 来打开任何特定的错误消息。您仍然希望构建服务器端验证,但至少可以轻松在线找到预构建的 RegEx 值,并且将有助于简化您的验证,这样您就不必维护巨大的条件代码块(if/else -if/else 和 switch/case 语句)。条件 block 中很容易错过验证规则,但 RegEx 语句会捕获它们。
因此,人们认为“正确的方式”是什么可能并不重要。每个人都会有不同的看法。对您和您的网站有效的方法就是适合您的方法。最好批判性地思考您正在构建的内容,以便您将来能够更轻松地学习构建表单验证的技能。
首先查看此 RegEx 站点的示例部分:http://www.regular-expressions.info或者在网络上搜索电子邮件地址、电话号码、IP 地址、邮政编码、州缩写、信用卡号码格式等的预构建 RegEx 字符串...您可以使用在线工具进行测试,例如: http://regexr.com或离线工具,如:RegEx Builder,结束于:https://sourceforge.net/projects/regexbuilder/
这是我几年前构建的一个示例:http://www.eonline.com/resources/js/libs/eol/eol.regEx.js
今天我会以不同的方式构建它,但它具有 .match() 函数 + 一个入门 JSON RegEx 对象。它展示了表单验证模式匹配的复杂程度。哦,您需要确保将垃圾输入值排除在数据库之外。电子邮件如:blah@blah.com 或州名如“XY”或名字如“Darth”和姓氏如“Vader”。祝你好运!
关于javascript - jQuery 验证 Uncaught ReferenceError ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35731381/
描述:。在我的Vue 3和nuxt 3项目中,我使用VITEST进行测试。但我在运行测试时遇到了一个问题:。版本。以下是我的页面代码:。下面是我的测试myest.spec.ts:。以下是我的vites
你好吗?我正在研究带有 Ionic 3 教程的 Google map 。我已经完成了那里解释的一切,但是当项目启动时,出现了这个错误。我调查了很多,但没有任何效果。谢谢! Error: Uncaugh
我刚刚开始使用 Node.js 并尝试使用模块。我已经安装了 Node 和 npm,并确保一切顺利。我将在下面添加代码来向您展示我得到了什么。 我有两个 js 文件,它们在这里。 app.js: va
我是 Angularjs 的初学者,在理解模块和作用域方面有些困难。 我不断收到范围未定义的错误,但我不明白为什么。首先,我将 Controller 链接到我设置路由的位置,但是由于在单击提交按钮时调
我正在制作一个 HTML 模板引擎。 程序遍历 HTML,并找到 {{ }} 的所有实例。然后它会遍历计数器中的所有键,并用对 Controller 的引用替换变量名称的实例。 例如,如果我的 Con
在我的 React Native 应用程序中,我有一个 ProductScreen,其中导入两个文件来完成屏幕。 文件 1 (Products.js) 是我的产品列表 文件 2 (Data.js) 是
我有以下类(class): class ScheduledContent { constructor(knex) { this.knex = knex } ge
在以下代码中,obj.sayhello() 行意味着sayhello在 obj 的上下文/范围内执行。 str未在 var 中定义(通过 sayhello )方法。 JS 将在范围内查找变量,即在
我正在尝试使用字符串作为函数的一部分。 const import1 = require('./import1'); const import2 = require('./import2'); //on
var g = { lang: "ttt", l: function(){ console.log(lang); } } console.log(g.l());
$(document).ready(function(){ $('#name').val('Name1'); }); function clickMe(){ console.lo
我刚刚完成了 Meteor 包的开发。现在我想通过将它添加到新的 Meteor 应用程序来测试它: my_cool_package_name/package.js Package.on_use(fun
我在给定的 SSCCE 代码中收到以下错误: Error: ReferenceError: electron is not defined Source File: http://localhost/
我正在关注一个简单的 tut,它有望构建一个响应式 slider ,但是它一直告诉我控制台中有一个错误指向一个名为 advance() 的函数 这是 slider 的简单 html:
我正在尝试使用基于按钮点击的表格中的数据填充表格。我正在将数据传递到 javascript 函数中。 )" id="modifyEdu" class="btn btn-primary"
我需要能够检查一个变量是否存在(如果它没有分配给 {})而不在 javascript 中抛出错误。当我尝试这段代码时 if (a) {} 它抛出 Uncaught ReferenceError
我在设置中有一个 mochajs 测试文件和一个 javascript 代码文件,如下所示: /js/module/codefile.js /js/test/testfile.js codefile.
我正在尝试构建一个简单的 Bookmarklet,它将一些外部 Javascript 加载到页面中,目标是将像 Stackoverflow 那样的 Markdown 编辑器添加到另一个站点。我可以使用
我有一个基于 Django 的网络应用程序。我用 Scrapy Crawler抓取网页。目前,我的目标是能够使用 jQuery 和 AJAX 请求从网页内控制爬虫。 我的理论设置如下: 在网页上,我有
以下 JavaScript... if (eval('typeof admin_post_css_theme_dark-moon)=='function')) {/**/} ...触发以下错误消息..
我是一名优秀的程序员,十分优秀!