Cách tạo: Xác thực mật khẩu

Học cách sử dụng CSS và JavaScript để tạo biểu mẫu xác thực mật khẩu.

Kiểm tra mật khẩu

Thử ngay

Tạo biểu mẫu xác thực mật khẩu

Bước 1 - Thêm HTML:

<div class="container">
  <form action="/action_page.php">
    <label for="usrname">Username</label>
    <input type="text" id="usrname" name="usrname" required>
    <label for="psw">Mật khẩu</label>
    <input type="password" id="psw" name="psw" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Phải chứa ít nhất một số và một chữ cái in hoa và in thường, và ít nhất 8 hoặc nhiều hơn" required>
    <input type="submit" value="Gửi">
  </form>
</div>
<div id="message">
  <h3>Mật khẩu phải chứa các yếu tố sau:</h3>
  <p id="letter" class="invalid">Một <b>chữ cái in thường</b></p>
  <p id="capital" class="invalid">Một <b>chữ cái in hoa</b> (chữ cái in thường)</p>
  <p id="number" class="invalid">Một <b>số</b></p>
  <p id="length" class="invalid">Ít nhất <b>8 ký tự</b></p>
</div>

Lưu ý:Chúng tôi sử dụng thuộc tính pattern (kèm biểu thức chính quy) trong trường mật khẩu để đặt các hạn chế gửi biểu mẫu: Phải chứa ít nhất 8 ký tự, trong đó ít nhất có một số, một chữ cái in hoa và một chữ cái in thường.

Bước 2 - Thêm CSS:

Đặt樣式 cho trường nhập và hộp thông báo:

/* Đặt樣式 cho tất cả các trường nhập */
input {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
  margin-top: 6px;
  margin-bottom: 16px;
}
/* Đặt樣式 cho nút submit */
input[type=submit] {
  background-color: #04AA6D;
  color: white;
}
/* Đặt样式 cho hộp nhập liệu */
.container {
  background-color: #f1f1f1;
  padding: 20px;
}
/* Khi người dùng nhấp chuột vào trường mật khẩu, hiển thị hộp thông báo */
#message {
  display:none;
  background: #f1f1f1;
  color: #000;
  position: relative;
  padding: 20px;
  margin-top: 10px;
}
#message p {
  padding: 10px 35px;
  font-size: 18px;
}
/* Khi yêu cầu đúng, thêm màu văn bản xanh và dấu tích. */
.valid {
  color: green;
}
.valid:before {
  position: relative;
  left: -35px;
  content: "✔";
}
/* Khi yêu cầu lỗi, thêm màu văn bản đỏ và biểu tượng "x". */
.invalid {
  color: red;
}
.invalid:before {
  position: relative;
  left: -35px;
  content: "✖";
}

Bước 3 - Thêm JavaScript:

<script>
var myInput = document.getElementById("psw");
var letter = document.getElementById("letter");
var capital = document.getElementById("capital");
var number = document.getElementById("number");
var length = document.getElementById("length");
// Khi người dùng nhấp chuột vào trường mật khẩu, hiển thị hộp thông báo
myInput.onfocus = function() {
  document.getElementById("message").style.display = "block";
}
// Khi người dùng nhấp chuột ngoài trường mật khẩu, ẩn hộp thông báo
myInput.onblur = function() {
  document.getElementById("message").style.display = "none";
}
// Khi người dùng bắt đầu nhập nội dung vào trường mật khẩu
myInput.onkeyup = function() {
  // Kiểm tra chữ cái in thường
  var lowerCaseLetters = /[a-z]/g;
  if(myInput.value.match(lowerCaseLetters)) {
    letter.classList.remove("invalid");
    letter.classList.add("valid");
  } else {
    letter.classList.remove("valid");
    letter.classList.add("invalid");
}
  // Kiểm tra chữ cái in hoa
  var upperCaseLetters = /[A-Z]/g;
  if(myInput.value.match(upperCaseLetters)) {
    capital.classList.remove("invalid");
    capital.classList.add("valid");
  } else {
    capital.classList.remove("valid");
    capital.classList.add("invalid");
  }
  // Kiểm tra số
  var numbers = /[0-9]/g;
  if(myInput.value.match(numbers)) {
    number.classList.remove("invalid");
    number.classList.add("valid");
  } else {
    number.classList.remove("valid");
    number.classList.add("invalid");
  }
  // Kiểm tra độ dài
  if(myInput.value.length >= 8) {
    length.classList.remove("invalid");
    length.classList.add("valid");
  } else {
    length.classList.remove("valid");
    length.classList.add("invalid");
  }
}
</script>

Thử ngay

Trang liên quan

Giáo trình:HTML biểu mẫu