Hướng dẫn required html là gì
1) Bộ chọn :required trong CSS- Bộ chọn :required dùng để chọn các phần tử form có thiết lập thuộc tính required. Show - Lưu ý:
- Gợi ý: Để chọn các phần tử form không có thiết lập thuộc tính required thì dùng bộ chọn :optional. 2) Cách sử dụng bộ chọn :required trong CSS- Để sử dụng bộ chọn :required, ta dùng cú pháp như sau:
3) Một số ví dụ- Thiết lập nền màu hồng cho các phần tử được thiết lập thuộc tính required
Xem ví dụ - Thiết lập nền màu hồng cho các phần tử
Xem ví dụ Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article) Trong hướng dẫn này, chúng ta sẽ khám phá thuộc tính Kiểm tra tính hợp lệKiểm tra tính hợp lệ của Form có tầm quan trọng đối với một trang web bảo mật cũng như tính khả dụng của nó. Quá trình xác nhận đánh giá các giá trị đầu vào có đúng định dạng hay không trước khi gửi nó. Ví dụ, nếu chúng ta có một trường nhập liệu cho một địa chỉ email, thì giá trị chắc chắn phải có một địa chỉ email hợp lệ; nó nên bắt đầu bằng một ký tự hoặc một số, tiếp theo là biểu tượng
Đặc tả HTML5 làm cho việc xác nhận trở nên dễ dàng hơn với sự ra đời của các kiểu trường nhập liệu mới chẳng hạn như Tuy nhiên, kỳ vọng mỗi trường hợp đầu vào đều được cung cấp khả năng kiểm tra là không thực
tế. Nếu bạn có một tên người dùng, mã zip hoặc bất kỳ loại dữ liệu đặc biệt không được chỉ định như là kiểu đầu vào tiêu chuẩn thì sao? Làm thế nào chúng ta xác nhận đầu vào chúng? Đây là nơi mà thuộc tính Sử dụng thuộc tính PatternThuộc tính Ví dụ, giả sử chúng ta có một input tên người dùng trong form của chúng ta. Không có một loại tiêu chuẩn cho tên người dùng, do đó chúng ta sử dụng Hãy định nghĩa một quy tắc để sử dụng với thuộc tính Thêm Bây giờ, vì nó chỉ chấp nhận chữ thường, nên khi submit bất kỳ giá trị nào khác sẽ đưa một thông báo lỗi: Thông báo lỗi, phát biểu rằng giá trị nhập vào không trùng với mẫu.Như bạn thấy ở trên, thông báo lỗi nói "Please match the requested format." Xác nhận của chúng ta hoạt động, nhưng thông báo này không giúp người dùng của chúng ta hiểu được mẫu được yêu cầu thực sự là gì. UX thất bại. Tùy biến thông báo xác nhậnMay mắn thay, chúng ta có thể tùy biến thông báo để cho nó trở nên hữu ích hơn, và chúng ta có một vài cách để làm như vậy. Cách dễ
nhất là chỉ định một thuộc tính Bây giờ title được thêm vào trong cùng với thông báo mặc định: Tuy nhiên, thông báo bật lên là không đồng nhất. Nếu chúng ta so sánh nó với một trong những thông báo bởi kiểu input email được hiển thị trước đó, thì các chỉ dẫn thật sự có thể nổi bật hơn. Cách thứ hai sẽ giải quyết vấn đề này cho chúng ta. Thay thế thông báo xác nhận mặc địnhBây giờ hãy thay thế thông báo "Please match the requested format" mặc định bằng một thông báo hoàn toàn tùy biến. Chúng ta sẽ sử dụng một chút JavaScript để làm điều này. Bắt đầu bằng cách thêm một Bây giờ, chúng ta có thể chọn phần tử input bằng cách sử dụng JavaScript và gán nó cho một biến (hoặc giữa các thẻ var input = document.getElementById('username'); Cuối cùng, chúng ta chỉ định thông báo được sử dụng khi input hiển thị trạng thái không hợp lệ của nó. input.oninvalid = function(event) { event.target.setCustomValidity('Username should only contain lowercase letters. e.g. john'); } Sự kiện Bây giờ, chúng ta sẽ thấy thông báo tuỳ biến thay thế cái mặc định. Định phong cáchĐể bổ sung cho kiểu input mới và những phương thức này để thiết lập một thông báo xác nhận tuỳ biến, đặc tả CSS3 mang đến một vài lớp giả hữu ích, input:invalid { border-color: red; } input, input:valid { border-color: #ccc; } Có một số thứ cần lưu ý khi sử dụng các lớp giả:
Một từ về định phong cách thông báo PopupXác nhận form đã trở thành một tiêu chuẩn mới sau mỗi một đặc tả HTML5, nhưng các popup lỗi xuất hiện hoàn toàn tuỳ thuộc vào các nhà cung cấp trình duyệt thì như thế nào. Kỳ vọng cái đẹp khác nhau trong các trình duyệt khác nhau, sẽ không giúp tạo ra sự thống nhất của giao diện người dùng. Google Chrome ngăn chặn khả năng tùy biến phong cách popup mặc định cách đây một vài năm. Nếu điều này là cái mà bạn muốn đạt được, lựa chọn duy nhất còn lại là hoàn toàn có thể thay thế thông báo popup bằng cách sử dụng JavaScript, vì vậy, hãy xem nó làm việc như thế nào! Nâng cao hơnChúng ta sẽ tạo một popup tùy biến mà sẽ xuất hiện khi giá trị của input là không hợp lệ. Để bắt
đầu, chúng ta cần chọn một vài phần tử cần thiết, cụ thể là var input = document.getElementById('username'); var form = document.getElementById('form'); Tiếp theo, chúng ta sẽ tạo ra một phần tử mới mà sẽ chứa thông báo của chúng ta: var elem = document.createElement('div'); elem.id = 'notify'; elem.style.display = 'none'; form.appendChild(elem); Ở đây, chúng tôi tạo ra một phần tử Làm việc với các sự kiệnCó hai sự kiện chúng ta cần phải xử lý. Đầu tiên,
sự kiện input.addEventListener('invalid', function(event){ event.preventDefault(); if ( ! event.target.validity.valid ) { elem.textContent = 'Username should only contain lowercase letters e.g. john'; elem.className = 'error'; elem.style.display = 'block'; input.className = 'invalid animated shake'; } }); Ở đây, với Chúng ta cũng thêm một lớp, input.invalid { border-color: #DD2C00; } Ngoài ra, bạn cũng có thể thêm các lớp Sự kiện thứ hai là sự kiện input.addEventListener('input', function(event){ if ( 'block' === elem.style.display ) { input.className = ''; elem.style.display = 'none'; } }); Như bạn có thể thấy ở trên, chúng ta sẽ loại bỏ tên lớp khỏi phần tử Bây giờ chúng ta đã có một thông báo xác nhận hoàn toàn tùy biến. Hãy thử nó: nhập bất kỳ giá trị không hợp lệ: Lưu ý: Đừng quên ghé qua GraphicRiver nếu bạn đang tìm kiếm cảm hứng để thiết kế giao diện form. Kết luậnSử dụng kiểu input tiêu chuẩn cùng với thuộc tính Ngạc nhiên là, ngay cả khi người dùng đã vô hiệu hóa JavaScript trong trình duyệt, thì trình duyệt mới nhất sẽ vẫn hiển thị popup xác nhận và ngăn chặn việc submit form. Tuy nhiên, Safari, không hỗ trợ thuộc tính pattern tại thời điểm viết bài. Tính năng tương tự có thể được chèn vào bằng cách sử dụng một polyfill Webshim Lib. Tôi hy vọng bạn thích hướng dẫn này và giữ nó như là một tài liệu tham khảo tiện dụng cho việc xác nhận bằng HTML5. |