【发布时间】:2014-01-31 07:00:47
【问题描述】:
对于我正在制作的注册表单,我想验证密码,以便用户必须输入包含至少一个大写字母和至少一个数字的密码。
我在这里实现了这个: http://jsfiddle.net/k9aHV/1/
<form action="login.php" method="post">
<p><b>UserName:</b> <input type="text" required pattern="\w+" name="fname"/></p>
<p><b>Password:</b> <input type="password" required pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,}" name="password" onblur="this.setCustomValidity(this.validity.patternMismatch ? 'Password must contain at least 6 characters, including UPPER/lowercase and numbers' : '');if(this.checkValidity()) form.password1.pattern = this.value;"></p>
<p><b>Confirm Password:</b> <input type="password" required pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,}" name="password1" onblur="
this.setCustomValidity(this.validity.patternMismatch ? 'Please enter the same password as above' : '');"/></p>
<p><b>Email:</b> <input type="email" name="email"/></p>
<input type="submit"/>
</form>
目前,该字段仅在用户按下提交时才被验证。
我如何调整我的代码,以便在用户离开输入字段的选项卡或点击时立即验证代码?
【问题讨论】:
-
setCustomValidity、validity和其他东西在哪里定义? -
@AshishKumar 在密码输入标签上定义了onblur。
-
那里没有定义,正在那里使用。必须有这个函数的定义。
-
看到这个:jsfiddle.net/k9aHV/2 我已经更改了模糊验证及其工作正常密码字段。
-
@AshishKumar,如果您在我的 jfiddle 中输入了无效密码,然后按提交,则会收到消息“密码必须包含至少 6 个字符,包括大写/小写和数字”。这证明它是定义的。如果您包含大写字母、小写字母和数字并按提交,则不会收到此类错误消息。
标签: html validation