【发布时间】:2020-01-27 17:01:59
【问题描述】:
我有一个函数可以通过 formDOM 元素。它通过数据属性检查该字段是否存在。例如:data-validate-email 如果是这种情况,则需要使用相应的函数进行验证,例如 emailIsValid() 。
这些函数都返回带有true 或false 的布尔值。如果其中一个函数返回 false,我如何管理/跟踪,以便我可以阻止表单提交。全局变量不起作用,因为它被下一个函数覆盖。
onSubmit(form, event)
{
event.preventDefault();
const fields = form.querySelectorAll( `[${textValidation}]`);
const passwordField = form.querySelector(`[${passwordValidation}]`);
const repeatPasswordField = form.querySelector(`[${passwordRepeatValidation}]`);
const email = form.querySelector(`[${emailValidation}]`);
if(fields)
{
this.TextIsValid(fields);
}
if(email)
{
this.emailIsValid(email);
}
if(passwordField)
{
this.passwordStrengthIsValid(passwordField);
}
if(repeatPasswordField)
{
this.passwordMatches(passwordField, repeatPasswordField);
}
}
【问题讨论】:
-
您研究过 HTML5 表单验证吗?现在很多这些东西都是内置的,只要你的验证规则可以用这些来表达。 developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation
-
我正在使用一些 HTML5 验证,但例如使用电子邮件,它只检查您是否使用
foo@bar,因此它不检查后缀 -
即使你提供了一个正则表达式模式来检查?
标签: javascript html forms validation