HTMLInputElement: phương thức reportValidity()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2018.
Phương thức reportValidity() của giao diện HTMLInputElement thực hiện các bước kiểm tra tính hợp lệ giống như phương thức checkValidity(). Ngoài ra, nếu sự kiện invalid không bị hủy, trình duyệt sẽ hiển thị vấn đề cho người dùng.
Cú pháp
reportValidity()
Tham số
Không có.
Giá trị trả về
Trả về true nếu giá trị của phần tử không có vấn đề về tính hợp lệ; ngược lại, trả về false.
Ví dụ
>Sử dụng cơ bản
HTML
Chúng ta bao gồm một biểu mẫu chứa trường số bắt buộc và hai nút: một nút để kiểm tra biểu mẫu và nút kia để gửi nó.
<form action="#" method="post">
<p>
<label for="age">Tuổi của bạn (21 đến 65) </label>
<input type="number" name="age" required id="age" min="21" max="65" />
</p>
<p>
<button type="submit">Gửi</button>
<button type="button" id="report">reportValidity()</button>
</p>
<p id="log"></p>
</form>
JavaScript
Khi nút "reportValidity()" được kích hoạt, chúng ta sử dụng phương thức reportValidity() để kiểm tra xem giá trị đầu vào có đáp ứng các ràng buộc của nó không. Chúng ta ghi lại giá trị trả về. Nếu false, chúng ta cũng hiển thị thông báo xác thực và bắt sự kiện invalid.
const output = document.querySelector("#log");
const reportButton = document.querySelector("#report");
const ageInput = document.querySelector("#age");
ageInput.addEventListener("invalid", () => {
console.log("Sự kiện Invalid đã kích hoạt.");
});
reportButton.addEventListener("click", () => {
const reportVal = ageInput.reportValidity();
output.innerHTML = `"reportValidity()" trả về: ${reportVal}`;
if (!reportVal) {
output.innerHTML += `<br />Thông báo xác thực: "${ageInput.validationMessage}"`;
}
});
Kết quả
Khi false, nếu giá trị bị thiếu, dưới 21, trên 65, hoặc không hợp lệ theo cách khác, một thông báo lỗi xuất hiện, một sự kiện invalid được kích hoạt, và chúng ta ghi lại sự kiện invalid đó vào console.
Thông báo lỗi tùy chỉnh
Ví dụ này minh họa cách một thông báo lỗi tùy chỉnh có thể gây ra giá trị trả về false khi giá trị hợp lệ theo cách khác.
HTML
Chúng ta thêm một nút "Sửa lỗi" vào HTML từ ví dụ trước.
JavaScript
Chúng ta mở rộng JavaScript từ ví dụ cơ bản ở trên, thêm một hàm sử dụng phương thức HTMLInputElement.setCustomValidity() để cung cấp thông báo lỗi tùy chỉnh. Hàm validateAge() chỉ đặt thông báo lỗi thành chuỗi rỗng nếu đầu vào hợp lệ VÀ biến enableValidation là true, với enableValidation là false cho đến khi nút "sửa vấn đề" được kích hoạt.
Kết quả
Nếu bạn kích hoạt nút "reportValidity()" trước khi nhập tuổi, phương thức reportValidity() trả về false vì nó không đáp ứng ràng buộc xác thực required. Phương thức này kích hoạt sự kiện invalid trên đầu vào và báo cáo vấn đề cho người dùng, hiển thị thông báo lỗi tùy chỉnh "Vui lòng đặt tuổi (bắt buộc)". Miễn là thông báo lỗi tùy chỉnh được đặt, việc kích hoạt nút "reportValidity()" sẽ tiếp tục hiển thị lỗi ngay cả khi bạn chọn một tuổi hợp lệ. Để bật xác thực, chúng ta phải đặt thông báo lỗi tùy chỉnh thành chuỗi rỗng, điều này được thực hiện bằng cách nhấp vào nút "Sửa vấn đề".
Đặc tả kỹ thuật
| Specification |
|---|
| HTML> # dom-cva-reportvalidity-dev> |