问题标签 [form-verification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11072 浏览

regex - 如何使用 HTML5 输入验证来验证表单输入

我已经尝试找到一个完整的模式列表,用于通过 HTML5 表单验证来验证各种类型的输入,特别url是 ,emailtel,但我找不到任何类型。目前,这些输入验证的内置版本远非完美(tel甚至不检查您输入的内容是否是电话号码)。所以我想知道,我可以使用哪些模式来验证用户在输入中输入了正确的格式?

以下是一些默认验证允许输入不应被允许的情况的示例:

type="email"

此字段允许电子邮件在 @ 之后具有不正确的域,并且它允许地址以破折号或句点开头或结尾,这也是不允许的。所以,.example-@x是允许的。

type="url"

这个输入基本上允许任何以http://(Chrome) 开头的输入,并且后面可以跟几个特殊字符以外的任何输入,例如那些在 URL 中具有功能的字符(\、@、#、~ 等)。在 FF 中,所有检查的是它是否以 开头http:,然后是除此之外的任何内容:(即使只是http:在 FF 中也允许)。IE 的作用与 FF 相同,只是它不禁止http::.

例如:http://.在所有三个中都允许。也是如此http://,

type="tel"

目前在任何主要浏览器中都没有内置的电话号码验证功能(它的功能与 a 100% 相同type="text",除了告诉移动浏览器显示哪种键盘。


因此,由于浏览器在每种情况下都没有表现出一致的行为,而且它们表现出的行为是非常基本的,有很多误报,我可以做些什么来验证我的 HTML 表单(仍然使用 HTML5 输入验证)?


PS:我发布这个是因为我发现自己拥有一个完整的表单验证模式列表很有用,所以我认为它对其他人也可能有用(当然其他人也可以发布他们的解决方案)。

0 投票
2 回答
2290 浏览

jquery - 如何在动态表单中使用 FormValidation?

我有一个带有动态输入字段数的表单:用户可以添加新项目,完成后他可以发送表单。表单使用 FormValidation (formValidation.io) 在发送前检查内容,以便更轻松地填写所有正确的数据。

问题是:只有第一个字段(加载页面时已经存在的那个)被检查,所有其他字段都被 FormValidation 跳过。

添加新字段时,我尝试再次调用 FormValidation,但这没有区别。我尝试仅在添加新字段时调用 FormValidation,并且它仅在第一次工作,包括前两个字段但跳过以后添加的任何字段。看起来 FormValidation 只能调用一次,并且只考虑当时存在的内容。

每次添加新字段时,您能否设计一种让 FormValidation 为整个表单工作的方法?

这是添加新输入字段的代码:

这是html:

0 投票
1 回答
1943 浏览

yii2 - 表单验证规则不呈现自定义消息

我正在使用 Yii2 ActiveForm 制作一个默认的模板化注册表单。在表单中,用户必须指定一个注册密钥才能完成注册。注册密钥的长度必须介于 6 到 10 个字符之间。

我已经删除了我的表单的所有其他验证规则,除了我遇到问题的那个。正在应用该规则,但正在呈现默认表单验证消息。

这是有问题的规则:

正在应用上述规则,我知道这一点是因为当我更改[2, 10]规则的长度时不再触发。我已阅读文档,但如果我遗漏了什么,请随时告诉我。

这是 Yii 渲染的 javascript:

message验证器永远不会呈现。Yii2 中的所有其他核心验证器都message用于指定自定义错误消息。为什么这里不是这样?

0 投票
2 回答
51 浏览

php - PHP 5.x mail() 是否验证“回复”字段中域的有效性?

我最近一直在“美化”一些久经考验的真实电子邮件表单,以使它们对移动设备更友好,并认为看到 PHP mail() 函数现在随机失败(并返回 FALSE),我已经疯了。好吧,这不是随机的。在几乎拔掉我所有的头发之后,我终于意识到,每当我为成为我的“回复”地址的表单字段输入无效域时,mail() 都会失败,并返回 FALSE!请注意,这些不是“格式错误”的电子邮件地址(我已经检查过),只是无效的(例如“name@goooogle.com”)。

如果您认为这很重要,我在下面包含了一个测试表单代码,但是您认为这是 PHP 的一个新“功能”,还是只是我的托管公司的服务器正在做的事情?如果是 PHP,是否有一些新的“testDomain()”函数我也可以添加到我的表单中?提醒犯了合法错误的用户会很好,但我可以肯定地告诉他们的是他们的邮件尝试失败了。毕竟,mail() 不会返回一些友好的小错误代码来指示发生了什么,它只是返回 true 或 false。事实上,当它返回 false 时,它​​甚至不会在日志文件中报告错误。

说实话,这是我唯一一次让 ma​​il() 在我的表单中失败。但我认为假设失败总是意味着域名不好是不明智的。

0 投票
4 回答
245 浏览

javascript - 使用 JavaScript submit() 函数时如何运行 HTML5 表单验证?

当有这样的输入时:

它应该只能在填写字段时提交。当我使用这样的提交按钮时,这有效:

它会出现一个小弹出窗口,要求填写该字段。但是,当我使用 javascript 提交它时,如下所示:

它提交 from 但不验证该字段是否首先填写。我该怎么做?

0 投票
1 回答
1113 浏览

php - 提交后重置注册表单字段(wordpress 和 woocommerce)

我有 woocommerce 注册表格,其中包含两个部分:
- 一个用于私人,
- 另一个用于公司。

在公司选项中有两个附加字段。我可以通过单选按钮在私人和公司之间切换,然后我会看到相关字段。

问题:当我填写表格(作为私人用户)并犯了一些错误时,重新加载表格并显示错误在哪里(没关系)。

但不幸的是,重新加载后,它会加载包含所有字段的表单(也包含附加公司字段的表单)。所以我需要在私人和公司之间点击2次才能恢复正确的行为。

我怎样才能解决这个问题?我的意思是在重新加载此错误后,以最初的形式显示表单。

我不确定这是负责此问题的代码,但让我们试试:

0 投票
0 回答
52 浏览

security - 如何验证发布的照片​​是使用我的网络应用程序创建的?

我创建了一个 Web 应用程序,让用户可以创建自己的酷头像。我希望用户能够分享他们创建的头像,以显示在我们的“近期创作”页面上。

不过我担心的是,如果我接受来自我的应用程序的 POST 请求(当前作为 POST 正文中的 Base64 编码字符串),技术上恶意的用户可以发送代表任何类型照片的任何字符串,然后将其发布到画廊!

如何确保帖子仅是在我的应用上创建的图像?