Hướng dẫn how do you change a password in html? - Làm cách nào để bạn thay đổi mật khẩu trong html?

<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
0 Các yếu tố của loại
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
1 cung cấp một cách để người dùng nhập mật khẩu một cách an toàn.
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
1
provide a way for the user to securely enter a password.

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 đơn giản một dòng trong đó văn bản bị che khuất để không thể đọc được, thường là bằng cách thay thế từng ký tự bằng một biểu tượng như dấu hoa thị ("*") hoặc một dấu chấm ("•" ). Nhân vậ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.

Thử nó

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

Lưu ý: Bất kỳ biểu mẫu nào liên quan đến thông tin nhạy cảm như mật khẩu (như biểu mẫu đăng nhập) nên được phục vụ qua HTTPS. Nhiều trình duyệt hiện thực hiện các cơ chế để cảnh báo chống lại các hình thức đăng nhập không an toàn; Xem mật khẩu không an toàn. Any forms involving sensitive information like passwords (such as login forms) should be served over HTTPS. Many browsers now implement mechanisms to warn against insecure login forms; see Insecure passwords.

Giá trị

Thuộc tính

<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
2 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 trống (
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
3). Nếu thuộc tính
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
4 đượ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 có hiệu lực.

Nếu thuộc tính

<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
5 đượ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ị truyền xác thực; Xem xác thực để biết thêm thông tin.

Lưu ý: Nguồn cấp dữ liệu dòng (U+000a) và các ký tự trả về vận chuyển (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ự trở lại của nguồn cấp dữ liệu và vận chuyển sẽ bị loại khỏi giá trị. The line feed (U+000A) and carriage return (U+000D) characters are not permitted in a
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
1 value. When setting the value of a password control, line feed and carriage return characters are stripped out of the value.

Thuộc tính bổ sung

Ngoài các thuộc tính hoạt động trên tất cả các yếu tố

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

Maxlength

Số lượng ký tự tối đa (như đơn vị mã UTF-16) 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 có

<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
9 được chỉ định hoặc giá trị không hợp lệ được chỉ định, 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 thành công xác thực ràng buộc nếu độ dài của văn bản nhập vào trường 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.

Độ dài nhỏ nhất

Số lượng ký tự tối thiểu (như các đơn vị mã UTF-16) Người dùng có thể nhập vào trường nhập mật khẩu. Đây phải là 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 có
<label for="userPassword">Password: label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
0 được chỉ định hoặc giá trị không hợp lệ được chỉ định, đầu vào mật khẩu không có độ dài tối thiểu.

Đầu vào sẽ không thành công xác thực ràng buộc nếu độ dài của văn bản nhập vào trường ít hơn các đơn vị mã UTF-16 dài hơn.

họa tiết

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 thông thường mà
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
2 của đầ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 thông thường JavaScript hợp lệ, như được sử dụng bởi loại ____27 và như được ghi lại trong hướng dẫn của chúng tôi về các biểu thức thông thường; Cờ
<label for="userPassword">Password: label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
8 được chỉ định khi biên dịch biểu thức chính quy, để mẫu được coi là một chuỗi các điểm mã Unicode, thay vì ASCII. Không có dấu gạch chéo phía trước nên được chỉ định xung quanh văn bản mẫu.

Nếu mẫu được chỉ định không được chỉ định hoặc không hợp lệ, 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.

Lưu ý: Sử dụng thuộc tính

<label for="userPassword">Password: label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
9 để 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 công cụ để giải thích các yêu cầu là gì để phù hợ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 đó. Use the
<label for="userPassword">Password: label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
9 attribute to specify text that most browsers will display as a tooltip to explain what the requirements are to match the pattern. You should also include other explanatory text nearby.

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

người giữ chỗ

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 một gợi ý ngắn gọn cho người dùng về loại thông tin nào đượ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, thay vì một thông điệp giải thích. Văn bản không được bao gồm trả lại vận chuyển hoặc nguồn cấp dữ liệu.

Nếu nội dung của điều khiển có một hướng (LTR hoặc RTL) nhưng cần trình bày 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 nhị phân Unicode để ghi đè tính định hướng trong trình giữ chỗ; Xem cách sử dụng các điều khiển Unicode cho văn bản BIDI để biết thêm thông tin.

Lưu ý: 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 các vấn đề kỹ thuật bất ngờ với nội dung của bạn. Xem nhãn và trình giữ chỗ trong: Phần tử đầu vào (đầu vào hình thức) để biết thêm thông tin. Avoid using the
<label for="pin">PIN: label>
<input id="pin" type="password" inputmode="numeric" />
0 attribute if you can. It is not as semantically useful as other ways to explain your form, and can cause unexpected technical issues with your content. See Labels and placeholders in : The Input (Form Input) element for more information.

chỉ đọc

Một thuộc tính Boolean, nếu có, có nghĩa là trường này không thể được chỉnh sửa bởi người dùng. 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 trực tiếp đặt giá trị của thuộc tính
<label for="pin">PIN: label>
<input id="pin" type="password" inputmode="numeric" />
3.

Lưu ý: Vì trường chỉ đọc không thể có giá trị,

<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 đến đầu vào với thuộc tính
<label for="pin">PIN: label>
<input id="pin" type="password" inputmode="numeric" />
5 cũng được chỉ định.
Because a read-only field cannot have a value,
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
4 does not have any effect on inputs with the
<label for="pin">PIN: label>
<input id="pin" type="password" inputmode="numeric" />
5 attribute also specified.

kích thước

Thuộc tính

<label for="pin">PIN: label>
<input id="pin" type="password" inputmode="numeric" />
6 là một giá trị số cho biết trường đầu vào rộng 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 của ký tự khác nhau, điều này có thể hoặc không chính xác và không nên dựa vào như vậy; Đầu vào thu được có thể hẹp hơn hoặc rộng hơn số lượng ký tự được chỉ định, tùy thuộc vào các ký tự và phông chữ (cài đặt
<label for="pin">PIN: label>
<input id="pin" type="password" inputmode="numeric" />
7 đang sử dụng).

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

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

Sử dụng đầu vào mật khẩu

Hộp đầu vào mật khẩu thường hoạt động giống như các hộp đầu vào văn bản khác; Sự khác biệt chính là sự che khuất của nội dung để ngăn mọi người gần người dùng đọc mật khẩu.

Một đầu vào mật khẩu đơn giản

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

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

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

Cho phép tự động hoàn thành

Để 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, chỉ định thuộc tính

<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
0. Đối với mật khẩu, đây thường là một trong những điều sau:

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

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

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

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

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ì nó thường có hại cho khả năng của người dùng trong việc duy trì thực hành mật khẩu an toàn.

<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 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

<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
1, 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 đang được biết đến cho trang web trong trường, nhưng không đề xuất mộ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" />
3

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; Điều này được sử dụng trên các biểu mẫu "Thay đổi mật khẩu" và "người dùng mới", trên trường yêu cầu người dùng cho mật khẩu mới. 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 giao diện.

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

Làm cho mật khẩu bắt buộc

Để nói với 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 biểu mẫu có thể được gửi, chỉ định thuộc tính Boolean

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

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

Chỉ định chế độ đầu vào

Nếu các quy tắc cú pháp mật khẩu được đề xuất (hoặc yêu cầu) 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, bạn có thể sử dụng thuộc tính

<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
9 để 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 được yêu cầu là 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 đủ, để làm cho việc nhập mật khẩu dễ dàng hơn. Nếu pin được sử dụng một lần, hãy đặt thuộc tính
<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
0 thành
<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
4 hoặc
<label for="userPassword">Password: label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select Allbutton>
2 để đề xuất rằng nó không được lưu.

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

Thiết lập yêu cầu độ dài

Như thường lệ, bạn có thể sử dụng các thuộc tính

<label for="userPassword">Password: label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
0 và
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
9 để thiết lập độ dài tối thiểu và tối đa được chấp nhận cho mật khẩu. Ví dụ này mở rộng trên cái trước bằng cách chỉ định rằng pin của người dùng phải ít nhất bốn và không quá tám chữ số. Thuộc tính
<label for="pin">PIN: label>
<input id="pin" type="password" inputmode="numeric" />
6 đượ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" />

Chọn văn bản

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 thức

<label for="userPassword">Password: label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select Allbutton>
6 để chọn tất cả cá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 Allbutton>

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 Allbutton>
7 và
<label for="userPassword">Password: label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select Allbutton>
8 để nhận (hoặc đặt) phạm vi ký tự nào trong điều khiển hiện đang được chọn và
<label for="userPassword">Password: label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select Allbutton>
9 để biết lựa chọn hướng nào xảy ra trong (hoặc sẽ được mở rộng, tùy thuộc vào nền tảng của bạn; giải trình). Tuy nhiên, cho rằng văn bản bị che khuất, tính hữu ích của chúng có phần hạn chế.

Thẩm định

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

<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
5 để thiết lập biểu thức thông thường đượ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ỉ các giá trị bao gồm ít nhất bốn và không quá tám chữ số thập lục phân là 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ụ

Ví dụ này chỉ chấp nhận đầu vào phù hợp với định dạng cho số An sinh xã hội Hoa Kỳ hợp lệ. Những con số này, được sử dụng cho mục đích thuế và nhận dạng ở Mỹ, ở dạng "123-45-6789". Các quy tắc cho các giá trị được cho 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

<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
5 giới hạn giá trị đã nhập đối với các chuỗi đại diện cho các số an sinh xã hội pháp lý. Rõ ràng, RegEXP này không đảm bảo 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; Nó thường tránh các giá trị không thể hợp lệ. Ngoài ra, nó cho phép ba nhóm chữ số được phân tách bằng một không gian, một dấu gạch ngang ("-") hoặc không có gì.

<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
9 được đặt thành
document.getElementById("selectAll").onclick = () => {
  document.getElementById("userPassword").select();
}
3 để 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
<label for="userPassword">Password: label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />
0 và
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
9 được đặt thành 9 và 12, tương ứng, để yêu cầu giá trị ít nhất là chín và không quá 12 ký tự (trước đây không phân tách các ký tự giữa các nhóm chữ số và phần sau với chúng). Thuộc tính
<label for="userPassword">Password:label>
<input id="userPassword" type="password" autocomplete="current-password" />
4 được sử dụng để chỉ ra rằng điều khiển này phải có giá trị. Cuối cùng,
<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
0 được đặt thành
<label for="pin">PIN:label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />
4 để tránh người quản lý mật khẩu và khôi phục phiên đang 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

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

const ssn = document.getElementById("ssn");
const current = document.getElementById("current");

ssn.oninput = (event) => {
  current.textContent = ssn.value;
}

Kết quả

Thông số kỹ thuật

Sự chỉ rõ
HTML Tiêu chuẩn # Mật khẩu-State- (Loại = Mật khẩu)
# password-state-(type=password)

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm