【发布时间】:2016-03-05 23:49:53
【问题描述】:
我刚开始在线学习 JS、Jquery 和 HTML。我有一个问题,并尝试做一些类似问题的答案中提到的事情,但这无济于事。
我有一个密码表单,它只接受至少 6 个字符、一个大写字母和一个数字的输入。我希望显示一个自定义验证消息,它可以再次说明这些条件。
这是我的 HTML 代码 -
<div class="password">
<label for="password"> Password </label>
<input type="password" class="passwrdforsignup" name="password" required pattern="(?=.*\d)(?=.*[A-Z]).{6,}"> <!--pw must contain atleast 6 characters, one uppercase and one number-->
</div>
我正在使用 JS 来设置自定义验证消息。
JS代码
$(document).ready(function () {
$('.password').on('keyup', '.passwrdforsignup', function () {
var getPW = $(this).value();
if (getPW.checkValidity() === false) {
getPW.setCustomValidity("This password doesn't match the format specified");
}
});
});
但是,自定义验证消息不显示。请帮忙。非常感谢您! :)
更新 1
我将密码模式更改为(?=.*\d)(?=.*[A-Z])(.{6,})。根据 4castle 的建议,我意识到我的 javascript 中有一些错误,并相应地进行了更改。但是,自定义验证消息仍然不显示。
JavaScript:
$(document).ready(function () {
$('.password').on('keyup', '.passwrdforsignup', function () {
var getPW = $(this).find('.passwrdforsignup').get();
if (getPW.checkValidity() === false) {
getPW.setCustomValidity("This password doesn't match the format specified");
}
});
});
再次,比你们都提前!
【问题讨论】:
-
@thisOneGuy,不。
required是一个标志,pattern是一个属性。可以这样写:required="true" pattern="blah". -
@jsve 谢谢,之前没遇到过
-
将您的模式更改为
(?=.*\d)(?=.*[A-Z])(.{6,}),以便有一个捕获组。 -
checkValidity是否使用该模式?如果您发布代码会有所帮助。 -
4castle,谢谢,我会改变模式。此外,这确实是我所有相关的代码。我假设 checkValidity 考虑了该模式,如果没有,它到底在检查什么?输入类型?
标签: javascript jquery html validation