Trong bài này mình sẽ hướng dẫn cách validate form bằng HTML5, đây là cách làm khá đơn giản nhưng lại rất hiệu quả.
Trước đây chúng ta hay validate form bằng Javascript, nhưng bây giờ thì bạn có thể làm bằng cách sử dụng các thuộc tính mà HTML5 đã bổ sung vào các thẻ input, select. Mặc dù nghe rất dễ dàng nhưng thực tế chúng ta vẫn ít khi sử dụng, bởi giao diện không đẹp bằng những thư viện validate chuyên nghiệp.
1. Yêu cầu bắt buộc nhập dữ liệu bằng HTML5
Để yếu cầu người dùng phải nhập dữ liệu vào ô input thì ta sử dụng thuộc tính require. Lúc này nếu bạn cố tình submit form thì nó sẽ thông báo yêu cầu nhập dữ liệu vào ô đó.
<form> <input type="text" required /><br /> <input type="submit" value="Submit now" /> </form>
2. Yêu cầu nhập vào địa chỉ email bằng HTLM5
Nếu bạn muốn bắt buộc người dùng nhập vào một ô nào đó với định dạng email thì hãy sử dụng thẻ input type="email"
.
Bài viết này được đăng tại [kiso.vn]
<form> <input type="email" required /> <br /> <input type="submit" value="Submit Now!"> </form>
Ngoài ra, bạn cũng có thể sử dụng thuộc tính pattern như sau:
<form> <input pattern="/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$/" required /> <br /> <input type="submit" value="Submit Now!"> </form>
Nên sử dụng cách nào?
Thực ra bạn sử dụng cách nào cũng được, miễn là cho kết quả đúng. Tuy nhiên, không nên sử dụng cả hai cùng một lúc bởi sẽ dễ sinh ra sung đột nhé.
3. Yêu cầu nhập vào URL website bằng HTML5
Thẻ input rất vi diệu, nó có thuộc tính type với rất nhiều thể loại khác nhau, trong đó có loại URL.
Để validate url thì ta sử dụng cách sau:
<form> <input type="url" required /> <input type="submit" value="Submit Now!"> </form>
Ngoài ra, bạn cũng có thể sử dụng pattern.
<form> <input type="url" pattern="https?://.+" required /> <input type="submit" value="Submit Now!"> </form>
4. Yêu cầu nhập vào là số bằng HTML5
Thẻ input type="number"
sẽ cho phép người dùng nhập vào là số, đây là phương pháp làm khá hay, bởi nó cung cấp cho ta thêm hai giá trị min và max.
Ví dụ dưới đây là form dữ liệu với yêu cầu nhập vào là một số:
<form> <input type="number" required> <input type="submit" value="Submit Now!"> </form>
Còn đây là ta sẽ giới hạn hai giá trị min và max, bạn sẽ không thể nhập vào số ngoài phạm vi của nó:
<form> <input type="number" min="10" max="20" required> <input type="submit" value="Submit Now!"> </form>
Nếu bạn muốn mỗi khi nhấp thay đổi giá trị với bước nhảy khác 1 thì sử dụng thuộc tính step:
<form> <input type="number" min="10" max="20" step="2" value="16" required> <input type="submit" value="Submit Now!"> </form>
Trên là một số cách sử dụng HTML5 để validate dữ liệu từ form. Bài này tương đối đơn giản, nhưng cũng sẽ giúp bạn nắm được một số kiến thức cơ bản về HTML5. Hẹn gặp lại các bạn ở bài tiếp theo nhé.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Yêu cầu bắt buộc nhập dữ liệu bằng...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Yêu cầu bắt buộc nhập dữ liệu bằng HTML52. Yêu cầu nhập vào địa chỉ email bằng HTLM53. Yêu cầu nhập vào URL website bằng HTML54. Yêu cầu nhập vào là số...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Yêu cầu bắt buộc nhập dữ liệu bằng HTML52. Yêu cầu nhập vào địa chỉ email bằng HTLM53. Yêu cầu nhập vào URL website bằng HTML54. Yêu cầu nhập vào là số...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Yêu cầu bắt buộc nhập dữ liệu bằng HTML52. Yêu cầu nhập vào địa chỉ email bằng HTLM53. Yêu cầu nhập vào URL website bằng HTML54. Yêu cầu nhập vào là số...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Yêu cầu bắt buộc nhập dữ liệu bằng HTML52. Yêu cầu nhập vào địa chỉ email bằng HTLM53. Yêu cầu nhập vào URL website bằng HTML54. Yêu cầu nhập vào là số...