Hướng dẫn how do you insert a validation in html? - làm cách nào để bạn chèn xác thực vào html?
Trước khi gửi dữ liệu đến máy chủ, điều quan trọng là đảm bảo tất cả các điều khiển biểu mẫu cần thiết được điền vào, ở định dạng chính xác. Điều này được gọi là xác thực biểu mẫu phía máy khách và giúp đảm bảo dữ liệu được gửi khớp với các yêu cầu được quy định trong các điều khiển biểu mẫu khác nhau. Bài viết này dẫn bạn qua các khái niệm cơ bản và ví dụ về xác thực hình thức phía khách hàng.client-side form validation, and helps ensure data submitted matches the requirements set forth in the various form controls. This article leads you through basic concepts and examples of client-side form validation. Xác thực phía máy khách là một kiểm tra ban đầu và là một tính năng quan trọng của trải nghiệm người dùng tốt; Bằng cách bắt dữ liệu không hợp lệ ở phía máy khách, người dùng có thể sửa nó ngay lập tức. Nếu nó đến máy chủ và sau đó bị từ chối, độ trễ đáng chú ý là do một chuyến đi khứ hồi đến máy chủ và sau đó quay lại phía máy khách để bảo người dùng sửa dữ liệu của họ. Tuy nhiên, xác thực phía khách hàng không nên được coi là một biện pháp bảo mật toàn diện! Ứng dụng của bạn phải luôn thực hiện kiểm tra bảo mật trên bất kỳ dữ liệu được gửi biểu mẫu nào ở phía máy chủ cũng như phía máy khách, vì xác thực phía máy khách quá dễ bỏ qua, vì vậy người dùng độc hại vẫn có thể dễ dàng gửi dữ liệu xấu qua máy chủ của bạn . Đọc bảo mật trang web cho một ý tưởng về những gì có thể xảy ra; Việc thực hiện xác thực phía máy chủ có phần nằm ngoài phạm vi của mô-đun này, nhưng bạn nên ghi nhớ nó.as well as the client-side, because client-side validation is too easy to bypass, so malicious users can still easily send bad data through to your server. Read Website security for an idea of what could happen; implementing server-side validation is
somewhat beyond the scope of this module, but you should bear it in mind. Truy cập bất kỳ trang web phổ biến nào với biểu mẫu đăng ký và bạn sẽ nhận thấy rằng họ cung cấp phản hồi khi bạn không nhập dữ liệu của mình theo định dạng mà họ đang mong đợi. Bạn sẽ nhận được tin nhắn như: Điều này được gọi là xác thực mẫu. Khi bạn nhập dữ liệu, trình duyệt và/hoặc máy chủ web sẽ kiểm tra xem dữ liệu ở định dạng chính xác và trong các ràng buộc được đặt bởi ứng dụng. Xác thực được thực hiện trong trình duyệt được gọi là xác thực phía máy khách, trong khi xác thực được thực hiện trên máy chủ được gọi là xác thực phía máy chủ. Trong chương này, chúng tôi đang tập trung vào xác thực phía khách hàng.form validation. When you enter data, the browser and/or the web server will check to see that the data is in the correct format and within the constraints set by the application. Validation done in the browser is called client-side validation, while validation done on the server is called server-side validation. In this chapter we are focusing on client-side validation. Nếu thông tin được định dạng chính xác, ứng dụng cho phép dữ liệu được gửi đến máy chủ và (thường) được lưu trong cơ sở dữ liệu; Nếu thông tin không được định dạng chính xác, nó cung cấp cho người dùng một thông báo lỗi giải thích những gì cần phải sửa và cho phép họ thử lại. Chúng tôi muốn làm cho việc điền vào các biểu mẫu web dễ dàng nhất có thể. Vậy tại sao chúng ta khăng khăng xác nhận các hình thức của chúng ta? Có ba lý do chính: CẢNH BÁO: Không bao giờ tin tưởng dữ liệu được truyền vào máy chủ của bạn từ máy khách. Ngay cả khi biểu mẫu của bạn đang xác thực chính xác và ngăn chặn đầu vào bị dị tật ở phía máy khách, người dùng độc hại vẫn có thể thay đổi yêu cầu mạng. Never trust data passed to your server from the client. Even if your form is validating correctly and preventing malformed input on the client-side, a malicious user can still alter the network request. Các loại xác thực phía máy khách khác nhauCó hai loại xác thực phía máy khách khác nhau mà bạn sẽ gặp trên web:
Sử dụng xác thực biểu mẫu tích hợpMột trong những tính năng quan trọng nhất của các điều khiển hình thức hiện đại là khả năng xác nhận hầu hết dữ liệu người dùng mà không cần dựa vào JavaScript. Điều này được thực hiện bằng cách sử dụng các thuộc tính xác thực trên các yếu tố biểu mẫu. Chúng tôi đã thấy nhiều trong số này sớm hơn trong khóa học, nhưng để tóm tắt lại:
Nếu dữ liệu được nhập trong một trường biểu mẫu tuân theo tất cả các quy tắc được chỉ định bởi các thuộc tính trên, thì nó được coi là hợp lệ. Nếu không, nó được coi là không hợp lệ. Khi một yếu tố hợp lệ, những điều sau đây là đúng:
Khi một phần tử không hợp lệ, những điều sau đây là đúng:
Ví dụ xác nhận biểu mẫu tích hợpTrong phần này, chúng tôi sẽ kiểm tra một số thuộc tính mà chúng tôi đã thảo luận ở trên. Tệp bắt đầu đơn giảnHãy bắt đầu với một ví dụ đơn giản: một đầu vào cho phép bạn chọn xem bạn thích chuối hay anh đào. Ví dụ này liên quan đến một văn bản đơn giản 8 với 9 được liên kết và gửi 0. Tìm mã nguồn trên GitHub tại Fruit-start.html và một ví dụ trực tiếp dưới đây.
Để bắt đầu, hãy tạo một bản sao của 1 trong một thư mục mới trên ổ cứng của bạn.Thuộc tính cần thiếtTính năng xác thực HTML đơn giản nhất là thuộc tính 8. Để thực hiện bắt buộc đầu vào, hãy thêm thuộc tính này vào phần tử. Khi thuộc tính này được đặt, phần tử khớp với lớp giả UI ____33 và biểu mẫu sẽ không gửi, hiển thị thông báo lỗi khi gửi khi đầu vào trống. Mặc dù trống, đầu vào cũng sẽ được coi là không hợp lệ, phù hợp với lớp giả UI ____26.Thêm thuộc tính 8 vào đầu vào của bạn, như được hiển thị bên dưới.
Lưu ý các CSS được bao gồm trong tệp ví dụ:
CSS này làm cho đầu vào có đường viền đứt nét màu đỏ khi nó không hợp lệ và một đường viền màu đen rắn tinh tế hơn khi hợp lệ. Chúng tôi cũng đã thêm một gradient nền khi đầu vào được yêu cầu và không hợp lệ. Hãy thử hành vi mới trong ví dụ dưới đây: Hãy thử gửi biểu mẫu mà không có giá trị. Lưu ý cách đầu vào không hợp lệ được lấy nét, thông báo lỗi mặc định ("Vui lòng điền vào trường này") xuất hiện và biểu mẫu được ngăn chặn được gửi. Sự hiện diện của thuộc tính 8 trên bất kỳ phần tử nào hỗ trợ thuộc tính này có nghĩa là phần tử phù hợp với lớp giả 3 cho dù nó có giá trị hay không. Nếu 8 không có giá trị, 9 sẽ khớp với lớp giả 6.Lưu ý: Đối với trải nghiệm người dùng tốt, hãy cho biết người dùng khi cần trường biểu mẫu. Nó không chỉ trải nghiệm người dùng tốt, nó được yêu cầu bởi các hướng dẫn tiếp cận WCAG. Ngoài ra, chỉ yêu cầu người dùng nhập dữ liệu bạn thực sự cần: ví dụ, tại sao bạn thực sự cần biết giới tính hoặc tiêu đề của ai đó? For good user experience, indicate to the user when form fields are required. It isn't only good user experience, it is required by WCAG accessibility guidelines. Also, only require users to input data you actually need: For example, why do you really need to know someone's gender or title? Xác nhận dựa trên biểu thức chính quyMột tính năng xác nhận hữu ích khác là thuộc tính 4, mong đợi một biểu thức thông thường là giá trị của nó. Một biểu thức chính quy (regex) là một mẫu có thể được sử dụng để phù hợp với các kết hợp ký tự trong các chuỗi văn bản, vì vậy RegEXP là lý tưởng để xác thực biểu mẫu và phục vụ nhiều cách sử dụng khác trong JavaScript.RegEXPS khá phức tạp và chúng tôi không có ý định dạy bạn một cách triệt để trong bài viết này. Dưới đây là một số ví dụ để cung cấp cho bạn một ý tưởng cơ bản về cách chúng hoạt động.
Có nhiều khả năng khác mà chúng tôi không bao gồm ở đây. Đối với một danh sách đầy đủ và nhiều ví dụ, hãy tham khảo tài liệu biểu thức thường xuyên của chúng tôi. Hãy thực hiện một ví dụ. Cập nhật HTML của bạn để thêm thuộc tính 4 như thế này:
Điều này cung cấp cho chúng tôi bản cập nhật sau - hãy thử nó: Trong ví dụ này, phần tử 8 chấp nhận một trong bốn giá trị có thể: chuỗi "chuối", "chuối", "anh đào" hoặc "anh đào". Các biểu thức thông thường là nhạy cảm với trường hợp, nhưng chúng tôi đã hỗ trợ nó được viết hoa cũng như các phiên bản trường hợp thấp hơn bằng cách sử dụng một mẫu "AA" bổ sung được lồng bên trong các giá đỡ vuông.Tại thời điểm này, hãy thử thay đổi giá trị bên trong thuộc tính 4 thành một số ví dụ bạn đã thấy trước đó và xem xét cách đó ảnh hưởng đến các giá trị bạn có thể nhập để làm cho giá trị đầu vào hợp lệ. Hãy thử viết một số của riêng bạn, và xem nó diễn ra như thế nào. Làm cho chúng liên quan đến trái cây nếu có thể để các ví dụ của bạn có ý nghĩa!Nếu giá trị không trống của 8 không khớp với mẫu biểu thức chính quy, 9 sẽ khớp với lớp giả 6.Lưu ý: Một số loại phần tử 8 element types don't need a
4 attribute to be validated against a regular expression. Specifying the 0 type, for example, validates the inputs value against a well-formed email address pattern or a pattern matching a comma-separated list of email addresses if it has the 1 attribute.Hạn chế độ dài của các mục nhập của bạnBạn có thể hạn chế độ dài ký tự của tất cả các trường văn bản được tạo bởi 8 hoặc 3 bằng cách sử dụng các thuộc tính 9 và 0. Một trường không hợp lệ nếu nó có giá trị và giá trị đó có ít ký tự hơn giá trị 9 hoặc nhiều hơn giá trị 0.Các trình duyệt thường không để người dùng nhập giá trị dài hơn dự kiến vào các trường văn bản. Trải nghiệm người dùng tốt hơn là chỉ sử dụng 0 là cung cấp phản hồi đếm ký tự một cách có thể truy cập và để họ chỉnh sửa nội dung của họ theo kích thước. Một ví dụ về điều này là giới hạn nhân vật được thấy trên Twitter khi tweet. JavaScript, bao gồm các giải pháp sử dụng 0, có thể được sử dụng để cung cấp điều này.Hạn chế các giá trị của các mục nhập của bạnĐối với các trường số (nghĩa là 0), các thuộc tính 1 và 2 có thể được sử dụng để cung cấp một loạt các giá trị hợp lệ. Nếu trường chứa một giá trị bên ngoài phạm vi này, nó sẽ không hợp lệ.Hãy xem xét một ví dụ khác. Tạo một bản sao mới của tệp fruit-start.html. Bây giờ xóa nội dung của phần tử 3 và thay thế nó bằng cách sau:
Đây là ví dụ chạy trực tiếp: Lưu ý: 0 (and other types, such as 01 and 02) can also take a 03 attribute, which specifies what increment the value will go up or down by when the input controls are used (such as the up
and down number buttons). In the above example we've not included a 03 attribute, so the value defaults to 05. This means that floats, like 3.2, will also show as invalid. Ví dụ đầy đủDưới đây là một ví dụ đầy đủ để hiển thị việc sử dụng các tính năng xác nhận tích hợp của HTML. Đầu tiên, một số HTML:
Và bây giờ một số CSS để tạo kiểu HTML:
Điều này hiển thị như sau: Xem các thuộc tính liên quan đến xác thực để biết danh sách đầy đủ các thuộc tính có thể được sử dụng để hạn chế các giá trị đầu vào và các loại đầu vào hỗ trợ chúng. Xác thực các biểu mẫu bằng cách sử dụng JavaScriptBạn phải sử dụng JavaScript nếu bạn muốn kiểm soát giao diện của các thông báo lỗi bản địa. Trong phần này, chúng tôi sẽ xem xét các cách khác nhau để làm điều này. API xác nhận ràng buộcHầu hết các trình duyệt đều hỗ trợ API xác thực ràng buộc, bao gồm một tập hợp các phương thức và thuộc tính có sẵn trên các giao diện DOM phần tử biểu mẫu sau:
API xác thực ràng buộc làm cho các thuộc tính sau có sẵn trên các yếu tố trên.
API xác thực ràng buộc cũng cung cấp các phương thức sau có sẵn trên các phần tử trên và phần tử 72.
Thực hiện thông báo lỗi tùy chỉnhNhư bạn đã thấy trong các ví dụ ràng buộc xác thực HTML trước đó, mỗi khi người dùng cố gắng gửi biểu mẫu không hợp lệ, trình duyệt sẽ hiển thị thông báo lỗi. Cách thông báo này được hiển thị tùy thuộc vào trình duyệt. Những tin nhắn tự động này có hai nhược điểm:
Tùy chỉnh các thông báo lỗi này là một trong những trường hợp sử dụng phổ biến nhất của API xác thực ràng buộc. Hãy làm việc thông qua một ví dụ đơn giản về cách làm điều này. Chúng tôi sẽ bắt đầu với một số HTML đơn giản (vui lòng đặt nó vào một tệp HTML trống; sử dụng một bản sao mới của Fruit-start.html làm cơ sở, nếu bạn thích): 0Và thêm JavaScript sau vào trang: 1Ở đây chúng tôi lưu trữ một tham chiếu đến đầu vào email, sau đó thêm trình nghe sự kiện cho nó chạy mã chứa mỗi lần giá trị bên trong đầu vào được thay đổi. Bên trong mã chứa, chúng tôi kiểm tra xem thuộc tính 81 của email có trả về 25 hay không, có nghĩa là giá trị chứa không khớp với mẫu cho địa chỉ email được hình thành tốt. Nếu vậy, chúng tôi gọi phương thức 83 với thông báo tùy chỉnh được hiển thị bằng cách gọi 77. Điều này hiển thị đầu vào không hợp lệ, do đó khi bạn cố gắng gửi biểu mẫu, việc gửi không thành công và thông báo lỗi tùy chỉnh được hiển thị.Nếu thuộc tính 81 trả về 20, chúng tôi sẽ gọi phương thức 83 là một chuỗi trống. Điều này hiển thị đầu vào hợp lệ, vì vậy biểu mẫu sẽ gửi.Bạn có thể dùng thử dưới đây: Một ví dụ chi tiết hơnBây giờ chúng ta đã thấy một ví dụ thực sự đơn giản, hãy xem cách chúng ta có thể sử dụng API này để xây dựng một số xác thực tùy chỉnh phức tạp hơn một chút. Đầu tiên, HTML. Một lần nữa, hãy thoải mái xây dựng điều này cùng với chúng tôi: 2Mẫu đơn giản này sử dụng thuộc tính 88 để tắt xác thực tự động của trình duyệt; Điều này cho phép tập lệnh của chúng tôi kiểm soát xác thực. Tuy nhiên, điều này không vô hiệu hóa hỗ trợ cho API xác thực ràng buộc cũng như việc áp dụng các lớp giả CSS như 5, v.v. điều đó có nghĩa là mặc dù trình duyệt không tự động kiểm tra tính hợp lệ của biểu mẫu trước khi gửi dữ liệu của nó, bạn có thể Vẫn tự làm và tạo kiểu hình thức cho phù hợp.Đầu vào của chúng tôi để xác thực là 90, là 8 và có 9 của 8 ký tự. Hãy kiểm tra chúng bằng mã riêng của chúng tôi và hiển thị thông báo lỗi tùy chỉnh cho từng thông báo.Chúng tôi đang nhắm đến việc hiển thị các thông báo lỗi bên trong phần tử 93. Thuộc tính 94 được đặt trên 93 để đảm bảo rằng thông báo lỗi tùy chỉnh của chúng tôi sẽ được trình bày cho mọi người, bao gồm cả việc đọc ra cho người dùng sàng lọc.Lưu ý: Một điểm quan trọng ở đây là việc cài đặt thuộc tính 88 attribute on the form is what stops the form from showing its own error message bubbles, and allows us to instead display the custom error messages in the DOM in some manner of our own choosing.Bây giờ vào một số CSS cơ bản để cải thiện giao diện của biểu mẫu một chút và cung cấp một số phản hồi trực quan khi dữ liệu đầu vào không hợp lệ: 3Bây giờ chúng ta hãy nhìn vào JavaScript thực hiện xác thực lỗi tùy chỉnh. 4Các ý kiến giải thích những điều khá tốt, nhưng ngắn gọn:
Đây là kết quả trực tiếp: API xác thực ràng buộc cung cấp cho bạn một công cụ mạnh mẽ để xử lý xác thực biểu mẫu, cho phép bạn có quyền kiểm soát rất lớn đối với giao diện người dùng ở trên và vượt ra ngoài những gì bạn có thể làm với HTML và CSS. Xác thực các biểu mẫu mà không có API tích hợpTrong một số trường hợp, chẳng hạn như điều khiển tùy chỉnh, bạn sẽ không thể hoặc không muốn sử dụng API xác thực ràng buộc. Bạn vẫn có thể sử dụng JavaScript để xác thực biểu mẫu của mình, nhưng bạn sẽ phải tự viết. Để xác thực một biểu mẫu, hãy tự hỏi mình một vài câu hỏi: Tôi nên thực hiện loại xác nhận nào?Bạn cần xác định cách xác thực dữ liệu của mình: hoạt động chuỗi, chuyển đổi loại, biểu thức chính quy, v.v. Tuỳ bạn. Tôi nên làm gì nếu biểu mẫu không xác thực?Đây rõ ràng là một vấn đề UI. Bạn phải quyết định làm thế nào biểu mẫu sẽ hoạt động. Hình thức có gửi dữ liệu không? Bạn có nên làm nổi bật các trường bị lỗi? Bạn có nên hiển thị thông báo lỗi không? Làm thế nào tôi có thể giúp người dùng sửa dữ liệu không hợp lệ?Để giảm sự thất vọng của người dùng, điều rất quan trọng là cung cấp càng nhiều thông tin hữu ích càng tốt để hướng dẫn họ sửa chữa đầu vào của họ. Bạn nên cung cấp các đề xuất trước để họ biết những gì mong đợi, cũng như thông báo lỗi rõ ràng. Nếu bạn muốn đào vào các yêu cầu UI xác thực biểu mẫu, đây là một số bài viết hữu ích bạn nên đọc:
Một ví dụ không sử dụng API xác thực ràng buộcĐể minh họa điều này, sau đây là phiên bản đơn giản hóa của ví dụ trước mà không có API xác thực ràng buộc. HTML gần như giống nhau; Chúng tôi vừa xóa các tính năng xác thực HTML. 5Tương tự, CSS không cần phải thay đổi nhiều; Chúng tôi vừa biến lớp giả CSS Pseudo thành một lớp thực và tránh sử dụng bộ chọn thuộc tính không hoạt động trên Internet Explorer 6. 6Những thay đổi lớn nằm trong mã JavaScript, cần phải thực hiện nhiều việc nâng cao hơn. 7Kết quả trông như thế này: Như bạn có thể thấy, không khó để tự mình xây dựng một hệ thống xác thực. Phần khó khăn là làm cho nó đủ chung để sử dụng cả nền tảng chéo và trên bất kỳ hình thức nào bạn có thể tạo ra. Có nhiều thư viện có sẵn để thực hiện xác thực biểu mẫu, chẳng hạn như xác nhận.js. Kiểm tra kỹ năng của bạn!Bạn đã đạt đến cuối bài viết này, nhưng bạn có thể nhớ thông tin quan trọng nhất không? Bạn có thể tìm thấy một số bài kiểm tra tiếp theo để xác minh rằng bạn đã giữ lại thông tin này trước khi bạn tiếp tục - xem Kiểm tra kỹ năng của bạn: Xác thực hình thức. Bản tóm tắtXác thực biểu mẫu phía máy khách Đôi khi yêu cầu JavaScript nếu bạn muốn tùy chỉnh thông báo kiểu dáng và lỗi, nhưng nó luôn đòi hỏi bạn phải suy nghĩ cẩn thận về người dùng. Luôn nhớ giúp người dùng của bạn sửa dữ liệu họ cung cấp. Cuối cùng, hãy chắc chắn:
Khi bạn đã kiểm tra xem biểu mẫu được điền chính xác, biểu mẫu có thể được gửi. Chúng tôi sẽ bao gồm việc gửi dữ liệu biểu mẫu tiếp theo.
Trong mô -đun nàyChủ đê nâng caoXác nhận và các loại của nó trong HTML là gì?Xác thực biểu mẫu HTML là một quá trình kiểm tra nội dung của trang HTML để tránh dữ liệu bị lỗi được gửi đến máy chủ. Quá trình này là một bước quan trọng trong việc phát triển các ứng dụng web dựa trên HTML, vì nó có thể dễ dàng cải thiện chất lượng của trang web hoặc ứng dụng web.a process of examining the HTML form page's contents to avoid errored-out data being sent to the server. This process is a significant step in developing HTML-based web applications, as it can easily improve the quality of the web page or the web application.
Xác thực biểu mẫu HTML5 là gì?HTML5 đã thêm các thuộc tính mới thiết lập các quy tắc xác thực cho một trường đầu vào đã cho.Các thuộc tính mới này bao gồm: Yêu cầu: Chỉ định rằng trường không thể trống.MIN / MAX: Chỉ định phạm vi của các giá trị được phép cho các đầu vào số.minlength / maxlength: Chỉ định phạm vi độ dài được phép cho văn bản ...declaratively set validation rules for a given input field. These new attributes include: required : Specifies that the field can't be blank. min / max : Specifies the range of allowed values for numeric inputs. minlength / maxlength : Specifies the range of allowed length for text ...
Thuộc tính HTML nào được sử dụng để xác thực trường đầu vào?Thuộc tính cần thiết là một thuộc tính Boolean.Khi có mặt, nó chỉ định rằng một trường đầu vào phải được điền trước khi gửi biểu mẫu.Lưu ý: Thuộc tính cần thiết hoạt động với các loại đầu vào sau: văn bản, tìm kiếm, url, tel, email, mật khẩu, người chọn ngày, số, hộp kiểm, radio và tệp.required attribute is a boolean attribute. When present, it specifies that an input field must be filled out before submitting the form. Note: The required attribute works with the following input types: text, search, url, tel, email, password, date pickers, number, checkbox, radio, and file.
Ý nghĩa của việc xác nhận trong HTML là gì?Xác thực HTML là một kiểm tra để xem mã nguồn của trang web có tuân thủ các tiêu chuẩn nhất định hay không.Lỗi thường được tô sáng để giúp chủ sở hữu thực hiện sửa chữa trước khi kiểm tra lại.Nó không giống như xác thực nội dung.a check to see if a website's source code complies with certain standards. Errors are usually highlighted to help the owner make corrections before testing again. It is not the same as content validation. |