Xác thực mẫu html là gì
Trong hướng dẫn này, bạn sẽ học cách sử dụng JavaScript để xác thực một biểu mẫu HTML. Chúng tôi đã thảo luận về các chủ đề Xác thực biểu mẫu HTML sau với các ví dụ Show
Xác thực mẫu là gì? Xác thực biểu mẫu là quá trình đảm bảo rằng dữ liệu do người dùng cung cấp bằng biểu mẫu đáp ứng các tiêu chí được đặt để thu thập dữ liệu từ người dùng. Ví dụ: nếu bạn đang sử dụng biểu mẫu đăng ký và bạn muốn người dùng của mình gửi tên, id email và địa chỉ, bạn phải sử dụng mã (bằng JavaScript hoặc bằng bất kỳ ngôn ngữ nào khác) để kiểm tra xem người dùng đã nhập tên chỉ chứa bảng chữ cái hay không Truy cập dữ liệu biểu mẫu Nếu một tài liệu HTML chứa nhiều hơn một biểu mẫu, chúng có thể được truy cập dưới dạng tài liệu. form_name trong đó form_name là giá trị của thuộc tính name của phần tử biểu mẫu hoặc theo tài liệu. biểu mẫu [i] trong đó tôi là 0, 1,2,3. và tài liệu. biểu mẫu [0] đề cập đến hình thức đầu tiên của tài liệu, tài liệu. biểu mẫu [1] đề cập đến biểu mẫu thứ hai của tài liệu, v.v. Các thành phần của biểu mẫu có thể được truy cập bằng tài liệu. form_name. form_element trong đó form_name là giá trị của thuộc tính name của phần tử form, form_element là giá trị của thuộc tính name của phần tử form Có nhiều cách khác để truy cập biểu mẫu cũng như các thành phần của biểu mẫu cũng sử dụng DOM API. Nhưng điều đó nằm ngoài phạm vi của hướng dẫn này Trước. Javascript. Đối tượng Java, JavaArray, JavaClass, JavaObject, JavaPackage, Gói, mặt trời, netscape Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource Chia sẻ Hướng dẫn / Bài tập này trên. Facebook và Twitter JavaScript. Lời khuyên trong ngàyemail hợp lệ const createMember = ({ email, address = {}}) => { const validEmail = /.+\@.+\..+/.test(email) if (!validEmail) throw new Error("Valid email pls") return { email, address: address ? address : null } } const member = createMember({ email: "[email protected]" }) console.log(member) Giá trị mặc định của địa chỉ là một đối tượng trống {}. Khi chúng ta đặt biến thành viên bằng với đối tượng được trả về bởi hàm createMember, chúng ta đã không chuyển giá trị cho địa chỉ, điều đó có nghĩa là giá trị của địa chỉ là đối tượng trống mặc định {}. Một đối tượng trống là một giá trị trung thực, có nghĩa là điều kiện của địa chỉ ? . điều kiện null trả về true. Giá trị của địa chỉ là đối tượng rỗng {} Trong bài viết này, chúng tôi xem xét các trường biểu mẫu HTML và các tùy chọn xác thực do HTML5 cung cấp. Chúng ta cũng sẽ xem xét cách cải thiện những điều này thông qua việc sử dụng CSS và JavaScript Xác thực ràng buộc là gì?Mỗi trường biểu mẫu có một mục đích. Và mục đích này thường bị chi phối bởi các ràng buộc — hoặc các quy tắc chi phối những gì nên và không nên nhập vào từng trường biểu mẫu. Ví dụ: trường 7 sẽ yêu cầu địa chỉ email hợp lệ; Các trình duyệt hiện đại có khả năng kiểm tra xem những ràng buộc này có được người dùng quan sát hay không và có thể cảnh báo họ khi các quy tắc đó bị vi phạm. Điều này được gọi là xác nhận ràng buộc Xác thực phía máy khách so với phía máy chủPhần lớn mã JavaScript được viết trong những năm đầu tiên của ngôn ngữ được xử lý xác thực biểu mẫu phía máy khách. Thậm chí ngày nay, các nhà phát triển dành thời gian đáng kể để viết các hàm để kiểm tra giá trị trường. Điều này có còn cần thiết trong các trình duyệt hiện đại không? . Trong hầu hết các trường hợp, nó thực sự phụ thuộc vào những gì bạn đang cố gắng thực hiện Nhưng trước tiên, đây là một thông điệp cảnh báo lớn
Trường đầu vào HTML5phiếu mua hàng HTML
Nhưng bạn sẽ sử dụng 2 thường xuyên nhất
Thuộc tính 3 đặt loại điều khiển và có nhiều lựa chọn tùy chọn 3mô tả 5a nút không có hành vi mặc định 6a kiểm tra/hộp đánh dấu 7a công cụ chọn màu 8a công cụ chọn ngày cho năm, tháng và ngày 9a công cụ chọn ngày và giờ 7một trường nhập email 61a một công cụ chọn tệp 62a một trường ẩn 63a một nút hiển thị hình ảnh được xác định bởi thuộc tính 64 65a một công cụ chọn tháng và năm 66aa một trường nhập số_______18a Trình duyệt quay trở lại 54 nếu bạn bỏ qua thuộc tính 3 hoặc nó không hỗ trợ tùy chọn. Các trình duyệt hiện đại hỗ trợ tốt cho tất cả các loại, nhưng các trình duyệt cũ vẫn sẽ hiển thị trường nhập văn bảnCác thuộc tính 2 hữu ích khác bao gồmđược gán mô tả 61loại tệp tải lên 62văn bản thay thế cho các loại hình ảnh 63gợi ý cho trường tự động hoàn thành 64trường tiêu điểm khi tải trang 65phương thức nhập phương tiện truyền thông 66hộp kiểm/radio được chọn 67tắt kiểm soát (nó sẽ không được xác thực hoặc giá trị của nó được gửi) 68liên kết với một biểu mẫu bằng cách sử dụng ID này 69URL để gửi khi gửi Trường đầu ra HTMLCũng như các loại đầu vào, HTML5 cung cấp đầu ra chỉ đọc
Nhập nhãnCác trường phải có một 52 được liên kết, mà bạn có thể quấn quanh phần tử
Hoặc liên kết trường 53 với nhãn bằng thuộc tính 54
Nhãn rất quan trọng đối với khả năng truy cập. Bạn có thể đã gặp các biểu mẫu sử dụng 50 để tiết kiệm không gian màn hình 6Văn bản giữ chỗ biến mất sau khi người dùng nhập nội dung nào đó — thậm chí là một khoảng trắng. Tốt hơn là hiển thị nhãn hơn là buộc người dùng nhớ những gì trường muốn Hành vi đầu vàoCác loại trường và thuộc tính ràng buộc thay đổi hành vi nhập liệu của trình duyệt. Ví dụ: đầu vào 66 hiển thị bàn phím số trên thiết bị di động. Trường có thể hiển thị công cụ quay vòng và nhấn con trỏ lên/xuống trên bàn phím sẽ tăng và giảm giá trịHầu hết các loại trường đều rõ ràng, nhưng vẫn có ngoại lệ. Ví dụ: thẻ tín dụng là số, nhưng công cụ tăng/giảm vô dụng và quá dễ dàng để nhấn lên hoặc xuống khi nhập số có 16 chữ số. Tốt hơn là sử dụng loại 54 tiêu chuẩn, nhưng đặt thuộc tính 50 thành 59, loại này sẽ hiển thị bàn phím phù hợp. Cài đặt 00 cũng đề xuất mọi số thẻ được định cấu hình trước hoặc đã nhập trước đóSử dụng đúng trường 3 và 02 mang lại những lợi ích khó đạt được trong JavaScript. Ví dụ, một số trình duyệt di động có thể
Xác thực tự độngTrình duyệt đảm bảo giá trị đầu vào tuân thủ các ràng buộc được xác định bởi các thuộc tính 3, 55, 53, 58, 56, 54, 58 và 52. Ví dụ 5Cố gắng gửi một giá trị trống sẽ ngăn việc gửi biểu mẫu và hiển thị thông báo sau trong Chrome Công cụ quay vòng sẽ không cho phép các giá trị nằm ngoài phạm vi từ 1 đến 100. Các thông báo xác thực tương tự sẽ xuất hiện nếu bạn nhập một chuỗi không phải là số. Tất cả không có một dòng JavaScript nào Bạn có thể dừng xác thực trình duyệt bằng cách
Tạo đầu vào JavaScript tùy chỉnhNếu bạn đang viết một thành phần nhập ngày dựa trên JavaScript mới, vui lòng dừng lại và bước ra khỏi bàn phím của bạn Khó viết các điều khiển đầu vào tùy chỉnh. Bạn phải xem xét chuột, bàn phím, cảm ứng, giọng nói, khả năng truy cập, kích thước màn hình và điều gì sẽ xảy ra khi JavaScript không thành công. Bạn cũng đang tạo trải nghiệm người dùng khác. Có lẽ khả năng kiểm soát của bạn vượt trội hơn so với công cụ chọn ngày tiêu chuẩn trên máy tính để bàn, iOS và Android nhưng giao diện người dùng không quen thuộc sẽ khiến một số người dùng nhầm lẫn Có ba lý do chính khiến các nhà phát triển chọn tạo đầu vào dựa trên JavaScript 1. Điều khiển tiêu chuẩn rất khó tạo kiểuKiểu dáng CSS bị hạn chế và thường yêu cầu hack, chẳng hạn như phủ một đầu vào bằng các phần tử giả 14 và 15 của nhãn nó. Tình hình đang được cải thiện, nhưng hãy đặt câu hỏi về bất kỳ thiết kế nào ưu tiên hình thức hơn chức năng2. Các loại 2 hiện đại không được hỗ trợ trong các trình duyệt cũVề bản chất, bạn đang viết mã cho Internet Explorer. Người dùng IE sẽ không có bộ chọn ngày nhưng vẫn có thể nhập ngày ở định dạng 17. Nếu khách hàng của bạn khăng khăng, thì chỉ tải một polyfill trong IE. Không cần phải tạo gánh nặng cho các trình duyệt hiện đại3. Bạn yêu cầu một loại đầu vào mới chưa từng được triển khai trước đâyNhững trường hợp này rất hiếm, nhưng luôn bắt đầu với các trường HTML5 thích hợp. Chúng nhanh và chúng hoạt động ngay cả trước khi tập lệnh được tải. Bạn có thể dần dần nâng cao các trường khi cần thiết. Ví dụ: một lượng nhỏ JavaScript có thể đảm bảo ngày kết thúc của sự kiện lịch xảy ra sau ngày bắt đầu Tóm tắt. tránh phát minh lại các điều khiển HTML Kiểu xác thực CSSBạn có thể áp dụng các lớp giả sau cho các trường đầu vào để tạo kiểu cho chúng theo trạng thái hiện tại bộ chọn mô tả 18trường có tiêu điểm 19một phần tử chứa trường có tiêu điểm (vâng, đó là bộ chọn chính. ) 20phần tử có tiêu điểm do điều hướng bàn phím, vì vậy cần có vòng tiêu điểm hoặc kiểu dáng rõ ràng hơn 21a trường có thuộc tính 52 23a trường không có thuộc tính 52 25a trường đã vượt qua xác thực 26a trường chưa vượt qua xác thực 27a trường đã vượt qua xác thực sau khi người dùng Bạn có thể định kiểu văn bản 50 của đầu vào bằng phần tử giả 47 6Các bộ chọn ở trên có cùng độ đặc hiệu, vì vậy thứ tự có thể quan trọng. Hãy xem xét ví dụ này 5Đầu vào không hợp lệ có văn bản màu đỏ nhưng nó chỉ áp dụng cho đầu vào có thuộc tính 67 — vì vậy tất cả đầu vào đã bật đều có màu đenTrình duyệt áp dụng các kiểu xác thực khi tải trang. Ví dụ: trong đoạn mã sau, mọi trường không hợp lệ đều có đường viền màu đỏ 5Người dùng phải đối mặt với một tập hợp các hộp màu đỏ khó khăn trước khi họ tương tác với biểu mẫu. Hiển thị lỗi xác thực sau lần gửi đầu tiên hoặc khi giá trị được thay đổi sẽ mang lại trải nghiệm tốt hơn. Đó là nơi JavaScript bước vào… JavaScript và API xác thực ràng buộcAPI xác thực ràng buộc cung cấp các tùy chọn tùy chỉnh biểu mẫu có thể nâng cao khả năng kiểm tra trường HTML tiêu chuẩn. Bạn có thể
Xác thực biểu mẫuTrước khi sử dụng API, mã của bạn phải tắt xác thực mặc định và thông báo lỗi bằng cách đặt thuộc tính 49 của biểu mẫu thành 55 (giống như thêm thuộc tính 11) 5Sau đó, bạn có thể thêm trình xử lý sự kiện — chẳng hạn như khi biểu mẫu gửi 5Trình xử lý có thể kiểm tra xem toàn bộ biểu mẫu có hợp lệ hay không bằng cách sử dụng các phương thức 52 hoặc 53, trả về 55 khi tất cả các đầu vào của biểu mẫu đều hợp lệ. (Sự khác biệt là 52 kiểm tra xem có bất kỳ đầu vào nào có thể xác thực ràng buộc hay không. )Các tài liệu Mozilla giải thích
0Một biểu mẫu hợp lệ hiện có thể phải chịu thêm kiểm tra xác thực. Tương tự, một biểu mẫu không hợp lệ có thể có các trường không hợp lệ được đánh dấu Xác thực trườngCác trường riêng lẻ có các thuộc tính xác thực ràng buộc sau
Các trường riêng lẻ có các phương thức xác thực ràng buộc sau
Hàm xử lý 88 có thể lặp qua mọi trường và áp dụng lớp 56 cho phần tử cha của nó khi cần thiết 1Giả sử HTML của bạn đã xác định một trường email 2Tập lệnh áp dụng lớp 56 cho lớp 91 khi email không được chỉ định hoặc không hợp lệ. CSS có thể hiển thị hoặc ẩn thông báo xác thực khi biểu mẫu được gửi 3Tạo Trình xác thực biểu mẫu tùy chỉnhPhần trình diễn sau đây cho thấy một biểu mẫu liên hệ mẫu yêu cầu tên người dùng và địa chỉ email, số điện thoại hoặc cả hai Xem Pen Nó được triển khai bằng cách sử dụng lớp xác thực biểu mẫu chung có tên là 92. Một phần tử biểu mẫu được chuyển khi khởi tạo một đối tượng. Có thể đặt tham số thứ hai tùy chọn
4Phương thức 95 định nghĩa các chức năng xác thực tùy chỉnh. Đoạn mã sau đảm bảo các trường 7 hoặc 53 hợp lệ (không có thuộc tính 52) 5Một đối tượng 92 giám sát cả hai điều sau đây
Cả hai đều gọi phương thức 02, phương thức này kiểm tra xem một trường có vượt qua xác thực ràng buộc tiêu chuẩn hay không. Khi đó, bất kỳ chức năng xác thực tùy chỉnh nào được gán cho trường đó sẽ thực thi lần lượt. Tất cả phải trả về 55 để trường hợp lệCác trường không hợp lệ có một lớp 56 được áp dụng cho thành phần cha của trường, hiển thị thông báo trợ giúp màu đỏ bằng CSSCuối cùng, đối tượng gọi hàm 52 tùy chỉnh khi toàn bộ biểu mẫu hợp lệ 6Ngoài ra, bạn có thể sử dụng một tiêu chuẩn 06 để xử lý các sự kiện của biểu mẫu 52, vì 92 ngăn các trình xử lý tiếp theo chạy khi biểu mẫu không hợp lệHình thức tinh xảoCác biểu mẫu là cơ sở của tất cả các ứng dụng web và các nhà phát triển dành nhiều thời gian để thao tác đầu vào của người dùng. Xác nhận ràng buộc được hỗ trợ tốt. trình duyệt có thể xử lý hầu hết các kiểm tra và hiển thị các tùy chọn nhập thích hợp khuyến nghị
Cuối cùng. quên Internet Explorer Trừ khi khách hàng của bạn chủ yếu là người dùng IE, không cần triển khai các chức năng xác thực dự phòng của riêng bạn. Tất cả các trường nhập HTML5 đều hoạt động trong IE nhưng có thể yêu cầu nhiều nỗ lực hơn của người dùng. (Ví dụ: IE sẽ không phát hiện khi bạn nhập địa chỉ email không hợp lệ. ) Bạn vẫn phải xác thực dữ liệu trên máy chủ, vì vậy hãy cân nhắc sử dụng dữ liệu đó làm cơ sở kiểm tra lỗi IE Chia sẻ bài viết nàyCraig Buckler Craig là một nhà tư vấn web tự do ở Vương quốc Anh, người đã xây dựng trang đầu tiên của mình cho IE2. 0 vào năm 1995. Kể từ thời điểm đó, anh ấy đã ủng hộ các tiêu chuẩn, khả năng truy cập và các kỹ thuật HTML5 thực hành tốt nhất. Anh ấy đã tạo các thông số kỹ thuật doanh nghiệp, trang web và ứng dụng trực tuyến cho các công ty và tổ chức bao gồm Nghị viện Vương quốc Anh, Nghị viện Châu Âu, Bộ Năng lượng & Biến đổi Khí hậu, Microsoft, v.v. Anh ấy đã viết hơn 1.000 bài báo cho SitePoint và bạn có thể tìm thấy anh ấy @craigbuckler Xác thực mẫu là gì?Xác thực biểu mẫu là một “ quy trình kỹ thuật trong đó biểu mẫu web kiểm tra xem thông tin do người dùng cung cấp có chính xác hay không . ” Biểu mẫu sẽ cảnh báo người dùng rằng họ đã nhầm lẫn và cần sửa một số thứ để tiếp tục hoặc biểu mẫu sẽ được xác thực và người dùng sẽ có thể tiếp tục quá trình đăng ký của họ.
xác nhận mẫu giải thích với ví dụ là gì?Xác thực biểu mẫu thường thực hiện hai chức năng. Xác thực cơ bản − Trước hết, biểu mẫu phải được kiểm tra để đảm bảo tất cả các trường bắt buộc được điền vào . Nó sẽ chỉ yêu cầu một vòng lặp qua từng trường trong biểu mẫu và kiểm tra dữ liệu.
Tại sao xác thực cần thiết trong biểu mẫu HTML?Tại sao cần phải xác thực biểu mẫu? . Xác thực dữ liệu biểu mẫu không đúng cách là một trong những nguyên nhân chính gây ra lỗ hổng bảo mật. Nó khiến trang web của bạn bị tấn công như chèn tiêu đề, tạo kịch bản chéo trang và chèn SQL. to prevent online form abuse by malicious users. Improper validation of form data is one of the main causes of security vulnerabilities. It exposes your website to attacks such as header injections, cross-site scripting, and SQL injections. |