ValidityState: thuộc tính customError
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Thuộc tính chỉ đọc customError của giao diện ValidityState trả về true nếu một phần tử không đáp ứng xác thực bắt buộc trong hợp lệ tùy chỉnh được đặt bởi phương thức setCustomValidity() của phần tử.
Giá trị
Một giá trị boolean là true nếu thông báo lỗi tùy chỉnh được đặt thành chuỗi không rỗng.
Ví dụ
>Phát hiện lỗi tùy chỉnh
Trong ví dụ này, setCustomValidity() đặt thông báo lỗi tùy chỉnh khi một lần gửi biểu mẫu chứa đầu vào người dùng được coi là không hợp lệ.
Nút "Validate input" gọi reportValidity(), hiển thị thông báo xác thực dưới phần tử nếu người dùng nhập các giá trị không khớp với ràng buộc của biểu mẫu.
Nếu bạn nhập văn bản "good" hoặc "fine" và cố gắng xác thực đầu vào, trường được đánh dấu là không hợp lệ cho đến khi thông báo lỗi tùy chỉnh được xóa (đặt thành chuỗi rỗng).
Để so sánh, có thuộc tính minlength trên phần tử đầu vào cho phép chúng ta minh họa trạng thái hợp lệ tooShort khi người dùng nhập ít hơn hai ký tự.
Khi giá trị trong điều khiển biểu mẫu không hợp lệ, ngay cả khi không có lỗi tùy chỉnh, đầu vào sẽ có đường viền đỏ.
HTML
<pre id="log">Validation failures logged here...</pre>
<input
type="text"
id="userInput"
placeholder="How do you feel?"
minlength="2" />
<button id="checkButton">Validate input</button>
CSS
input:invalid {
border: red solid 3px;
}
JavaScript
const userInput = document.getElementById("userInput");
const checkButton = document.getElementById("checkButton");
const logElement = document.getElementById("log");
function log(text) {
logElement.innerText = text;
}
const check = (input) => {
// Xử lý các trường hợp đầu vào quá mơ hồ
if (input.value === "good" || input.value === "fine") {
input.setCustomValidity(`"${input.value}" is not a feeling.`);
} else {
// Chuỗi rỗng đặt lại trạng thái hợp lệ tùy chỉnh
input.setCustomValidity("");
}
};
userInput.addEventListener("input", () => {
check(userInput);
});
const validateInput = () => {
userInput.reportValidity();
if (userInput.validity.customError) {
// Chúng ta có thể xử lý trạng thái hợp lệ tùy chỉnh ở đây
log(`Custom validity error: ${userInput.validationMessage}`);
} else {
log(userInput.validationMessage);
}
};
checkButton.addEventListener("click", validateInput);
Kết quả
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| HTML> # dom-validitystate-customerror-dev> |
Tương thích trình duyệt
Xem thêm
- Các thuộc tính ValidityState badInput, valid.
- Xác thực ràng buộc
- Biểu mẫu: Xác thực dữ liệu biểu mẫu