Tôi vừa bắt đầu học JS, Jquery và HTML trực tuyến. Tôi có một câu hỏi, và đã cố gắng làm những điều được kể trong câu trả lời của các câu hỏi tương tự trên SO, nhưng nó sẽ không giúp ích gì.Xác thực tùy chỉnh JQuery và HTML5 không hoạt động như dự định
Tôi có biểu mẫu mật khẩu chỉ chấp nhận đầu vào có ít nhất 6 ký tự, một chữ hoa và một số. Tôi muốn hiển thị thông báo xác thực tùy chỉnh có thể chỉ nêu rõ các điều kiện này.
Đây là mã HTML của tôi -
<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>
Tôi đang sử dụng JS để thiết lập các thông điệp xác nhận tùy chỉnh.
mã 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");
}
});
});
Tuy nhiên, thông điệp xác nhận tùy chỉnh không hiển thị. Hãy giúp tôi. Cảm ơn trước! :)
CẬP NHẬT 1
tôi đã thay đổi mô hình mật khẩu để (?=.*\d)(?=.*[A-Z])(.{6,})
. Dựa trên lời khuyên của 4castle, tôi nhận ra có một vài lỗi trong javascript của tôi, và thay đổi chúng cho phù hợp. Tuy nhiên, thông báo xác thực tùy chỉnh vẫn không hiển thị.
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");
}
});
});
Một lần nữa, so với tất cả các bạn trước!
@thisOneGuy, no. 'required' là một cờ và' pattern' là một thuộc tính. Nó có thể được viết như: 'required =" true "pattern =" blah "'. –
@ jsve cảm ơn, đã không đi qua rằng trước khi – thatOneGuy
Thay đổi mô hình của bạn để '(? =. * \ D) (? =. * [AZ]) (. {6,})' để có một nhóm chụp . – 4castle