Sự kiện oninvalid

Định nghĩa và cách sử dụng

Sự kiện oninvalid xảy ra khi phần tử <input> có thể gửi không hợp lệ.

Ví dụ, nếu đã thiết lập thuộc tính required và trường trống, thì trường nhập liệu không hợp lệ (thuộc tính required chỉ định trường nhập liệu phải được điền trước khi gửi biểu mẫu).

Mô hình

Ví dụ 1

Nếu trường nhập không hợp lệ, thì hiển thị một đoạn văn bản:

<input type="text" oninvalid="alert('Bạn phải điền biểu mẫu!');" required>

Thử nghiệm trực tiếp

Dưới trang này có nhiều ví dụ TIY khác.

Cú pháp

Trong HTML:

<element oninvalid="myScript">

Thử nghiệm trực tiếp

Trong JavaScript:

object.oninvalid = function(){myScript};

Thử nghiệm trực tiếp

Trong JavaScript, sử dụng phương thức addEventListener():

object.addEventListener("invalid", myScript);

Thử nghiệm trực tiếp

Ghi chú:Internet Explorer 8 hoặc các phiên bản trước không hỗ trợ phương thức addEventListener().

Chi tiết kỹ thuật

Nổi bubbles: Không hỗ trợ
Có thể hủy bỏ: Hỗ trợ
Loại sự kiện: Sự kiện
Các thẻ HTML được hỗ trợ: <input>
Phiên bản DOM: Sự kiện Level 3

Hỗ trợ trình duyệt

Số trong bảng chỉ ra phiên bản trình duyệt đầu tiên hỗ trợ sự kiện này hoàn toàn.

Sự kiện Chrome IE Firefox Safari Opera
oninvalid Hỗ trợ 10.0 Hỗ trợ Hỗ trợ Hỗ trợ

Những ví dụ khác

Ví dụ 2

Nếu trường nhập chứa ít hơn 6 ký tự, thì hiển thị một đoạn văn bản:

Tên: <input type="text" id="myInput" name="fname" pattern=".{6,}" required>
<script>
document.getElementById("myInput").addEventListener("invalid", myFunction);
function myFunction() {
  alert("Phải chứa 6 hoặc nhiều ký tự");
}
</script>

Thử nghiệm trực tiếp

Ví dụ 3

Nếu trường nhập chứa số nhỏ hơn 2 hoặc lớn hơn 5, thì hiển thị một đoạn văn bản:

Số: <input type="number" id="myInput" name="quantity" min="2" max="5" required>
<script>
document.getElementById("myInput").addEventListener("invalid", myFunction);
function myFunction() {
  alert("Bạn phải chọn một số từ 2 đến 5. Bạn đã chọn: " + this.value);
}
</script>

Thử nghiệm trực tiếp

Trang liên quan

Giáo trình JavaScript: Biểu mẫu JavaScript