Mật khẩu và xác nhận xác thực mật khẩu trong HTML5

Phần tử được trình bày dưới dạng điều khiển trình soạn thảo văn bản thuần túy một dòng trong đó văn bản bị che khuất nên không thể đọc được, thường bằng cách thay thế từng ký tự bằng ký hiệu chẳng hạn như dấu hoa thị ("*") hoặc dấu chấm ("•" . Ký tự này sẽ thay đổi tùy thuộc vào tác nhân người dùng và hệ điều hành

Hành vi chính xác của quá trình nhập có thể khác nhau giữa các trình duyệt. Một số trình duyệt hiển thị ký tự đã nhập trong giây lát trước khi làm mờ nó, trong khi những trình duyệt khác cho phép người dùng bật và tắt hiển thị văn bản thuần túy. Cả hai phương pháp đều giúp người dùng kiểm tra xem họ đã nhập mật khẩu dự định hay chưa, điều này có thể đặc biệt khó khăn trên thiết bị di động

Ghi chú. Mọi biểu mẫu liên quan đến thông tin nhạy cảm như mật khẩu (chẳng hạn như biểu mẫu đăng nhập) phải được cung cấp qua HTTPS. Nhiều trình duyệt hiện triển khai cơ chế cảnh báo đối với các hình thức đăng nhập không an toàn;

Thuộc tính chứa một chuỗi có giá trị là nội dung hiện tại của điều khiển chỉnh sửa văn bản được sử dụng để nhập mật khẩu. Nếu người dùng chưa nhập bất cứ thứ gì, giá trị này là một chuỗi rỗng (

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
3). Nếu thuộc tính được chỉ định, thì hộp chỉnh sửa mật khẩu phải chứa một giá trị khác với chuỗi trống để hợp lệ

Nếu thuộc tính được chỉ định, nội dung của điều khiển

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
1 chỉ được coi là hợp lệ nếu giá trị vượt qua xác thực;

Ghi chú. Các ký tự xuống dòng (U+000A) và xuống dòng (U+000D) không được phép trong giá trị

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
1. Khi đặt giá trị của điều khiển mật khẩu, các ký tự xuống dòng và ký tự xuống dòng bị loại bỏ khỏi giá trị

Ngoài các thuộc tính hoạt động trên tất cả các phần tử

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
0 bất kể loại của chúng, đầu vào trường mật khẩu hỗ trợ các thuộc tính sau

Số ký tự tối đa (dưới dạng đơn vị mã UTF-16) mà người dùng có thể nhập vào trường mật khẩu. Đây phải là một giá trị số nguyên 0 hoặc cao hơn. Nếu không chỉ định

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
9 hoặc chỉ định một giá trị không hợp lệ, thì trường mật khẩu không có độ dài tối đa. Giá trị này cũng phải lớn hơn hoặc bằng giá trị của
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
0

Đầu vào sẽ không xác thực được ràng buộc nếu độ dài của văn bản được nhập vào trường này lớn hơn

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
9 đơn vị mã UTF-16 dài

Số ký tự tối thiểu (dưới dạng đơn vị mã UTF-16) mà người dùng có thể nhập vào trường nhập mật khẩu. Đây phải là một giá trị số nguyên không âm nhỏ hơn hoặc bằng giá trị được chỉ định bởi

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
9. Nếu không chỉ định
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
0 hoặc chỉ định một giá trị không hợp lệ, thì mật khẩu nhập vào không có độ dài tối thiểu

Dữ liệu nhập vào sẽ không xác thực được ràng buộc nếu độ dài của văn bản được nhập vào trường nhỏ hơn

<label for="userPassword">Password: </label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
0 đơn vị mã UTF-16

Thuộc tính

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
5, khi được chỉ định, là một biểu thức chính quy mà đầu vào phải khớp để giá trị vượt qua xác thực ràng buộc. Nó phải là một biểu thức chính quy JavaScript hợp lệ, như được sử dụng bởi loại
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
7 và như được ghi lại trong hướng dẫn của chúng tôi về các biểu thức chính quy; . Không được chỉ định dấu gạch chéo lên xung quanh văn bản mẫu

Nếu mẫu đã chỉ định không được chỉ định hoặc không hợp lệ, thì không có biểu thức chính quy nào được áp dụng và thuộc tính này bị bỏ qua hoàn toàn

Ghi chú. Sử dụng thuộc tính để chỉ định văn bản mà hầu hết các trình duyệt sẽ hiển thị dưới dạng chú giải công cụ để giải thích những yêu cầu để khớp với mẫu. Bạn cũng nên bao gồm văn bản giải thích khác gần đó

Việc sử dụng một mẫu được đặc biệt khuyến nghị cho các lần nhập mật khẩu, để giúp đảm bảo rằng các mật khẩu hợp lệ sử dụng nhiều loại ký tự được người dùng của bạn chọn và sử dụng. Với mẫu, bạn có thể bắt buộc quy tắc viết hoa chữ thường, yêu cầu sử dụng một số chữ số và/hoặc ký tự dấu chấm câu, v.v. Xem phần để biết chi tiết và một ví dụ

Thuộc tính

<label for="pin">PIN: </label>
<input id="pin" type="password" inputmode="numeric" />
0 là một chuỗi cung cấp gợi ý ngắn gọn cho người dùng về loại thông tin được mong đợi trong trường. Nó phải là một từ hoặc cụm từ ngắn thể hiện loại dữ liệu dự kiến, chứ không phải là một thông báo giải thích. Văn bản không được bao gồm dấu xuống dòng hoặc xuống dòng

Nếu nội dung của điều khiển có một hướng (LTR hoặc RTL) nhưng cần hiển thị trình giữ chỗ theo hướng ngược lại, bạn có thể sử dụng các ký tự định dạng thuật toán hai chiều Unicode để ghi đè hướng trong trình giữ chỗ;

Ghi chú. Tránh sử dụng thuộc tính

<label for="pin">PIN: </label>
<input id="pin" type="password" inputmode="numeric" />
0 nếu bạn có thể. Nó không hữu ích về mặt ngữ nghĩa như các cách khác để giải thích biểu mẫu của bạn và có thể gây ra sự cố kỹ thuật không mong muốn với nội dung của bạn. Xem để biết thêm thông tin

Thuộc tính Boolean, nếu có, nghĩa là người dùng không thể chỉnh sửa trường này. Tuy nhiên,

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
2 của nó vẫn có thể được thay đổi từ mã JavaScript đặt trực tiếp giá trị của thuộc tính
<label for="pin">PIN: </label>
<input id="pin" type="password" inputmode="numeric" />
4

Ghi chú. Vì trường chỉ đọc không thể có giá trị, nên

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
4 không có bất kỳ ảnh hưởng nào đối với đầu vào với thuộc tính
<label for="pin">PIN: </label>
<input id="pin" type="password" inputmode="numeric" />
6 cũng được chỉ định

Thuộc tính

<label for="pin">PIN: </label>
<input id="pin" type="password" inputmode="numeric" />
7 là một giá trị số cho biết độ rộng của trường nhập phải là bao nhiêu ký tự. Giá trị phải là một số lớn hơn 0 và giá trị mặc định là 20. Vì độ rộng ký tự khác nhau, điều này có thể chính xác hoặc không chính xác và không nên dựa vào đó;

Điều này không đặt giới hạn về số lượng ký tự mà người dùng có thể nhập vào trường. Nó chỉ xác định khoảng bao nhiêu có thể được nhìn thấy tại một thời điểm. Để đặt giới hạn trên cho độ dài của dữ liệu đầu vào, hãy sử dụng thuộc tính

Hộp nhập mật khẩu thường hoạt động giống như các hộp nhập văn bản khác;

Ở đây chúng ta thấy đầu vào mật khẩu cơ bản nhất, với nhãn được thiết lập bằng cách sử dụng phần tử

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
0

<label for="userPassword">Password: </label>
<input id="userPassword" type="password" />

Để cho phép trình quản lý mật khẩu của người dùng tự động nhập mật khẩu, hãy chỉ định thuộc tính. Đối với mật khẩu, đây thường phải là một trong những điều sau đây

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
2

Cho phép trình duyệt hoặc trình quản lý mật khẩu tự động điền vào trường mật khẩu. Đây không phải là thông tin như sử dụng một trong hai

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
3 hoặc
<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
4

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
5

Không cho phép trình duyệt hoặc trình quản lý mật khẩu tự động điền vào trường mật khẩu. Lưu ý rằng một số phần mềm bỏ qua giá trị này vì giá trị này thường gây hại cho khả năng duy trì các hoạt động mật khẩu an toàn của người dùng

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
3

Cho phép trình duyệt hoặc trình quản lý mật khẩu nhập mật khẩu hiện tại cho trang web. Điều này cung cấp nhiều thông tin hơn so với

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
2, vì nó cho phép trình duyệt hoặc trình quản lý mật khẩu tự động nhập mật khẩu hiện đã biết cho trang web vào trường, nhưng không đề xuất mật khẩu mới

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
4

Cho phép trình duyệt hoặc trình quản lý mật khẩu tự động nhập mật khẩu mới cho trang web; . Mật khẩu mới có thể được tạo theo nhiều cách khác nhau, tùy thuộc vào trình quản lý mật khẩu đang sử dụng. Nó có thể điền vào một mật khẩu được đề xuất mới hoặc nó có thể hiển thị cho người dùng một giao diện để tạo một mật khẩu.

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />

Để thông báo cho trình duyệt của người dùng rằng trường mật khẩu phải có giá trị hợp lệ trước khi có thể gửi biểu mẫu, hãy chỉ định thuộc tính Boolean

<label for="userPassword">Password: </label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />

Nếu các quy tắc cú pháp mật khẩu được đề xuất (hoặc bắt buộc) của bạn sẽ được hưởng lợi từ giao diện nhập văn bản thay thế so với bàn phím tiêu chuẩn, thì bạn có thể sử dụng thuộc tính này để yêu cầu một giao diện cụ thể. Trường hợp sử dụng rõ ràng nhất cho điều này là nếu mật khẩu bắt buộc phải ở dạng số (chẳng hạn như mã PIN). Ví dụ: các thiết bị di động có bàn phím ảo có thể chọn chuyển sang bố cục bàn phím số thay vì bàn phím đầy đủ để giúp nhập mật khẩu dễ dàng hơn. Nếu mã PIN được sử dụng một lần, hãy đặt thuộc tính thành

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
5 hoặc
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select All</button>
3 để gợi ý rằng nó không được lưu

<label for="pin">PIN: </label>
<input id="pin" type="password" inputmode="numeric" />

Như thường lệ, bạn có thể sử dụng các thuộc tính và để thiết lập độ dài tối thiểu và tối đa có thể chấp nhận được cho mật khẩu. Ví dụ này mở rộng trên ví dụ trước bằng cách chỉ định rằng mã PIN của người dùng phải có ít nhất bốn và không quá tám chữ số. Thuộc tính được sử dụng để đảm bảo rằng điều khiển nhập mật khẩu rộng tám ký tự

<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />

Cũng như các điều khiển nhập văn bản khác, bạn có thể sử dụng phương pháp

<label for="userPassword">Password: </label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select All</button>
7 để chọn tất cả văn bản trong trường mật khẩu

HTML

<label for="userPassword">Password: </label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select All</button>

JavaScript

document.getElementById("selectAll").onclick = () => {
  document.getElementById("userPassword").select();
}

Kết quả

Bạn cũng có thể sử dụng

<label for="userPassword">Password: </label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select All</button>
8 và
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select All</button>
9 để nhận (hoặc đặt) phạm vi ký tự trong điều khiển hiện được chọn và
document.getElementById("selectAll").onclick = () => {
  document.getElementById("userPassword").select();
}
0 để biết lựa chọn theo hướng nào (hoặc sẽ được mở rộng trong, tùy thuộc vào nền tảng của bạn; xem tài liệu của nó để biết . Tuy nhiên, do văn bản bị che khuất nên tính hữu dụng của chúng có phần hạn chế

Nếu ứng dụng của bạn có các hạn chế về bộ ký tự hoặc bất kỳ yêu cầu nào khác đối với nội dung thực của mật khẩu đã nhập, thì bạn có thể sử dụng thuộc tính để thiết lập một biểu thức chính quy được sử dụng để tự động đảm bảo rằng mật khẩu của bạn đáp ứng các yêu cầu đó

Trong ví dụ này, chỉ những giá trị bao gồm ít nhất bốn và không quá tám chữ số thập lục phân mới hợp lệ

<label for="hexId">Hex ID: </label>
<input
  id="hexId"
  type="password"
  pattern="[0-9a-fA-F]{4,8}"
  title="Enter an ID consisting of 4-8 hexadecimal digits"
  autocomplete="new-password" />

Ví dụ này chỉ chấp nhận đầu vào phù hợp với định dạng cho một. Những số này, được sử dụng cho mục đích nhận dạng và thuế ở Hoa Kỳ, có dạng "123-45-6789". Các loại quy tắc cho những giá trị nào được phép trong mỗi nhóm cũng tồn tại

HTML

<label for="ssn">SSN:</label>
<input
  type="password"
  id="ssn"
  inputmode="numeric"
  minlength="9"
  maxlength="12"
  pattern="(?!000)([0-6]\d{2}|7([0-6]\d|7[012]))([ -])?(?!00)\d\d\3(?!0000)\d{4}"
  required
  autocomplete="off" />
<br />
<label for="ssn">Value:</label>
<span id="current"></span>

Điều này sử dụng a giới hạn giá trị đã nhập thành các chuỗi đại diện cho số An sinh xã hội hợp pháp. Rõ ràng, biểu thức chính quy này không đảm bảo số SSN hợp lệ (vì chúng tôi không có quyền truy cập vào cơ sở dữ liệu của Cơ quan An sinh Xã hội), nhưng nó đảm bảo số có thể là một; . Ngoài ra, nó cho phép ba nhóm chữ số được phân tách bằng dấu cách, dấu gạch ngang ("-") hoặc không có gì

Giá trị này được đặt thành

document.getElementById("selectAll").onclick = () => {
  document.getElementById("userPassword").select();
}
4 để khuyến khích các thiết bị có bàn phím ảo chuyển sang bố cục bàn phím số để nhập dễ dàng hơn. Các thuộc tính và được đặt tương ứng thành 9 và 12 để yêu cầu giá trị đó phải có ít nhất chín và không quá 12 ký tự (giá trị trước không có ký tự phân tách giữa các nhóm chữ số và giá trị sau với chúng). Thuộc tính được sử dụng để chỉ ra rằng điều khiển này phải có giá trị. Cuối cùng, được đặt thành
<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
5 để tránh trình quản lý mật khẩu và các tính năng khôi phục phiên cố gắng đặt giá trị của nó, vì đây hoàn toàn không phải là mật khẩu

JavaScript

Đây chỉ là một số mã đơn giản để hiển thị SSN đã nhập trên màn hình để bạn có thể nhìn thấy nó. Rõ ràng điều này đánh bại mục đích của trường mật khẩu, nhưng nó hữu ích cho việc thử nghiệm với

<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />
5

Làm cách nào để xác thực mật khẩu và xác nhận mật khẩu trong HTML5?

Xác nhận mật khẩu bằng HTML5

Làm cách nào để so sánh mật khẩu và xác nhận mật khẩu trong HTML?

Đây là phương pháp đơn giản để xác minh mật khẩu phù hợp. Mật khẩu đầu tiên được lưu vào biến password1 và xác nhận mật khẩu được lưu vào biến password2. Sau đó kiểm tra xem cả hai giá trị biến có bằng nhau không thì mật khẩu khớp nếu không thì mật khẩu không khớp. // giống hay không

Làm cách nào để xác minh tên người dùng và mật khẩu trong HTML?

Sao chép mã .
<đầu>
Xác minh Mật khẩu hợp lệ
.
hàm verifyPassword() {
var pw = tài liệu. getElementById("pswd"). giá trị;
// kiểm tra trường mật khẩu trống

Làm cách nào để xác thực email và mật khẩu trong HTML?

Xác thực Email & Mật khẩu [Mã nguồn] . Sau khi tạo ba tệp này, bạn có thể sao chép-dán các mã đã cho vào tài liệu của mình. create three files one is an HTML file and another is a CSS file and a JavaScript file. After creating these three files then you can copy-paste the given codes on your document.