Bạn có thể hiển thị thông báo lỗi bằng phần tử HTML không?


Thí dụ

Trả lại thông báo lỗi

cố gắng {
adddlert("Xin chào quý khách. ");
}
bắt (err) {
tài liệu. getElementById("bản trình diễn"). bên trongHTML = err. thông điệp;
}

Tự mình thử »


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

Thuộc tính message đặt hoặc trả về thông báo lỗi

Xem thêm

Thuộc tính name của đối tượng Error


cú pháp

Giá trị trả về

Một chuỗi mô tả lỗi (khác nhau giữa các trình duyệt)

Hỗ trợ trình duyệt

error.name là một tính năng ECMAScript1 (ES1)

ES1 (JavaScript 1997) được hỗ trợ đầy đủ trên mọi trình duyệt

ChromeEdgeFirefoxSafariOperaIECóCóCóCóCóCó

Trang liên quan

Hướng dẫn JavaScript. Lỗi JavaScript

Tham chiếu JavaScript. Thuộc tính tên



có một điểm chung;

Hóa ra các phương tiện cụ thể để xử lý nhiều lỗi tùy thuộc vào chính trình duyệt

Báo cáo sự cố với các ràng buộc của ít nhất một trong các thành phần được đưa ra trong các điều khiển không hợp lệ chưa được xử lý cho người dùng. Tác nhân người dùng có thể tập trung vào một trong những phần tử đó trong quy trình, bằng cách chạy các bước tập trung cho phần tử đó và có thể thay đổi vị trí cuộn của tài liệu hoặc thực hiện một số hành động khác khiến phần tử đó được người dùng chú ý

Tác nhân người dùng có thể báo cáo nhiều hơn một vi phạm ràng buộc. Tác nhân người dùng có thể hợp nhất các báo cáo vi phạm ràng buộc liên quan nếu thích hợp (e. g. nếu nhiều nút radio trong một nhóm được đánh dấu là bắt buộc thì chỉ cần thông báo một lỗi)

Phần quan trọng ở đây là các tác nhân người dùng (tôi. e. trình duyệt) CÓ THỂ báo cáo nhiều hơn một vi phạm ràng buộc (i. e. lỗi). Hóa ra tất cả họ đều quyết định không

Bạn có thể thấy điều này trong trình duyệt của mình bên dưới (giả sử nó không phải là Safari, sẽ nói thêm về điều đó sau). Cả hai trường đều là required, nhưng nếu bạn gửi biểu mẫu, bạn sẽ chỉ thấy lỗi ở trường đầu tiên

Ví dụ xác thực yêu cầu HTML5 Mở trong cửa sổ mới

Đây là giao diện trên các trình duyệt được hỗ trợ nếu bạn cố gắng gửi

trống này

Chrome 21

Bạn có thể hiển thị thông báo lỗi bằng phần tử HTML không?

Firefox 14

Bạn có thể hiển thị thông báo lỗi bằng phần tử HTML không?

Opera 12

Bạn có thể hiển thị thông báo lỗi bằng phần tử HTML không?

Như bạn có thể thấy, cả ba chỉ báo lỗi cho trường đầu tiên. Firefox ít nhất có quyền đặt đường viền màu đỏ xung quanh tất cả các trường có dữ liệu không hợp lệ theo mặc định

Một trình duyệt đáng chú ý bị thiếu trong danh sách trên là Safari. Mặc dù Safari hỗ trợ API xác thực ràng buộc nhưng bản thân xác thực đã bị tắt

khả năng sử dụng

Từ góc độ khả năng sử dụng, chỉ hiển thị cho người dùng thông báo lỗi đầu tiên là xấu. Hãy tưởng tượng sẽ khó chịu như thế nào khi liên tục sửa lỗi chỉ để gặp lỗi tiếp theo trong trình tự. Nếu bạn đã gặp phải một hình thức như thế này trước khi bạn biết tôi đang nói về điều gì

May mắn thay, các trình duyệt cung cấp một cái có thể được sử dụng để cung cấp chức năng này

Sử dụng API xác thực

Tất cả các nút dom hiện có một thuộc tính cho biết liệu nút đó có phải là ứng cử viên để xác thực biểu mẫu hay không

Các nút trong đó willValidatetrue cũng có thuộc tính validity. Thuộc tính validity phân giải thành đối tượng ValidityState chứa thông tin về việc trường có lỗi xác thực hay không, cũng như thông báo lỗi mà trình duyệt sẽ hiển thị cho người dùng

Để làm cho mọi thứ trở nên dễ dàng hơn, các trình duyệt cung cấp một. bộ chọn giả không hợp lệ có thể được sử dụng để chọn tất cả các phần tử có lỗi xác thực. Hãy xem cách điều này có thể được tận dụng để hiển thị tất cả các thông báo lỗi

Mật mã

Đây là cách tôi thực hiện điều này với tập lệnh phụ thuộc jQuery


    

    Bạn có thể xem kết quả trong trình duyệt của mình bên dưới

    Hiển thị tất cả các thông báo lỗi Open in New Window

    Đây là giao diện của nó trong Chrome 21

    Bạn có thể hiển thị thông báo lỗi bằng phần tử HTML không?

    Một vài điều cần lưu ý

    1) Nếu người dùng cố gắng gửi biểu mẫu và gặp lỗi xác thực, thì sự kiện submit sẽ không bao giờ được kích hoạt cho

    . Do đó, thay vì nghe submit trên , tôi sẽ nghe một 2 trên 3. Vì người dùng cũng có thể gửi biểu mẫu bằng cách nhấn enter khi nhập văn bản, tôi đính kèm một trình nghe 4 cho họ để đảm bảo logic tương tự chạy

    2) Trong ví dụ của tôi, tôi bắt đầu mỗi thông báo lỗi với nội dung của trường ______3_______5. Điều này là do các thông báo cho từng trường thường giống hệt nhau. Một cách tiếp cận khác là sử dụng một phương thức API xác thực ràng buộc khác, để đặt một thông báo hoàn toàn tùy chỉnh

    3) Bộ chọn 6 sẽ không trả về gì trong tất cả các trình duyệt không hỗ trợ API xác thực ràng buộc. Do đó, mã này sẽ không làm gì trong các trình duyệt đó

    4) Opera không điền sai thuộc tính 7. Do đó, việc kiểm tra 8 là cần thiết để một thông báo được hiển thị cho Opera

    5) Tôi không làm gì để tạo kiểu cho các trường riêng lẻ dựa trên việc chúng có dữ liệu hợp lệ hay không. Thông số kỹ thuật HTML5 cung cấp một số móc nối CSS để thực hiện việc này và tôi khuyên bạn nên đọc CSS Pseudo-Classes và HTML5 Forms từ html5 Doctor nếu bạn quan tâm đến việc bao gồm kiểu dáng như vậy

    Đó là rất nhiều mã để làm điều gì đó đơn giản

    Chuẩn rồi. Mặc dù hỗ trợ trình duyệt đang trở nên khá tốt đối với các biểu mẫu HTML5 nhưng bản thân việc triển khai vẫn còn một chút lỗi. Tuy nhiên, phương pháp này sẽ hoạt động để hiển thị tất cả các lỗi xác thực cho người dùng cuối

    Polyfill

    Nếu bạn quan tâm đến việc làm cho mã ở trên hoạt động trong tất cả các trình duyệt, bạn có một tùy chọn là bổ sung chức năng cho các trình duyệt không được hỗ trợ. Một sự lựa chọn mạnh mẽ là thư viện webshims

    Để làm cho webshims hoạt động với mã trên, tất cả những gì bạn cần làm là thêm 9. Người bảo trì, @aFarkas thậm chí còn đủ để cung cấp cho tôi một ví dụ trực tiếp cho thấy điều này - http. //jsfiddle. net/trixta/HynHy/

    Thẻ HTML nào cho thông báo lỗi?

    Không có thẻ phù hợp để sử dụng cho thông báo lỗi . Tất cả phụ thuộc vào cách thức và nơi bạn muốn hiển thị lỗi. Sau khi bạn quyết định những điều này, các lựa chọn của bạn sẽ bị thu hẹp, vì các thuộc tính và giới hạn của thẻ sẽ khác nhau.

    Làm cách nào để xem mã lỗi HTML?

    World Wide Web Consortium cung cấp một công cụ trực tuyến đơn giản ( https. // trình xác thực. w3. org/ ) tự động kiểm tra mã HTML của bạn và chỉ ra bất kỳ sự cố/lỗi nào mà mã của bạn có thể mắc phải, chẳng hạn như thiếu thẻ đóng hoặc thiếu dấu ngoặc kép quanh các thuộc tính.

    Làm cách nào để hiển thị thông báo lỗi trong HTML bằng PHP?

    Cách nhanh nhất để hiển thị tất cả lỗi và cảnh báo php là thêm những dòng này vào tệp mã PHP của bạn. ini_set('lỗi_hiển_thị', 1);

    Làm cách nào để hiển thị thông báo lỗi ở dạng HTML bằng jQuery?

    Phương thức lỗi jQuery() . Phương thức error() kích hoạt sự kiện lỗi hoặc đính kèm hàm để chạy khi xảy ra sự kiện lỗi.