Web Forms 2.0 trong HTML5

Web Form 2.0 là sự mở rộng của các tính năng Form thành lập trong HTML4. Các phần tử và thuộc tính Form trong HTML5 cung cấp một mức độ đánh dấu semantic tốt hơn trong HTML4 và gỡ bỏ phần lớn sự cần thiết của công việc script và tạo kiểu tẻ nhạt được yêu cầu trong HTML4.


Phần tử <input> trong HTML4

Các phần tử HTML4 input sử dụng thuộc tính typeđể xác định kiểu dữ liệu. HTML4 cung cấp các kiểu sau:
KiểuMiêu tả
textMột trường văn bản không ràng buộc kiểu form, trên danh nghĩa không ràng buộc các dòng ngắt.
passwordMột trường văn bản không ràng buộc kiểu form với thông tin nhạy cảm, trên danh nghĩa không ràng buộc các dòng ngắt.
checkboxTập hợp của 0 và nhiều giá trị hơn từ một danh sách đã xác định trước.
radioMột giá trị liệt kê
submitMột kiểu form không ràng buộc của nút khởi tạo sự đệ trình form.
fileMột file tùy ý với một kiểu MIME và một tên file tùy ý.
imageMột tọa độ, liên quan tới một kích cỡ ảnh riêng, với semantic thêm mà nó phải là giá trị cuối được chọn và khởi tạo sự đệ trình form
hiddenMột chuỗi tùy ý mà thông thường không được hiển thị tới người dùng
selectMột giá trị liệt kê, khá giống với kiểu radio.
textareaMột trường văn bản không ràng buộc kiểu form, trên danh nghĩa không giới hạn các dòng ngắt.
buttonMột form tùy ý của nút mà có thể khởi tạo bất kỳ sự kiện liên quan tới nút
Sau đây là ví dụ đơn giản của việc sử dụng các label, các nút radio, và các nút submit:
...
<form action="http://example.com/cgiscript.pl" method="post">

   <p>

      <label for="firstname">first name: </label>
      <input type="text" id="firstname"><br />

      <label for="lastname">last name: </label>
      <input type="text" id="lastname"><br />

      <label for="email">email: </label>
      <input type="text" id="email"><br>

      <input type="radio" name="sex" value="male"> Male<br>
      <input type="radio" name="sex" value="female"> Female<br>
      <input type="submit" value="send"> <input type="reset">
   </p>
</form>
 ...

Phần tử <input> trong HTML5

Ngoài các thuộc tính được đề cập trên, phần tử input trong HTML5 giới thiệu một số giá trị mới cho thuộc tính type. Bảng dưới liệt kê các giá trị này: Ghi chú: Bạn thử tất cả các ví dụ sau sử dụng phiên bản trình duyệt Operamới nhất.
KiểuMiêu tả
datetimeNgày và thời gian (năm, tháng, ngày, giờ, phút, giây, các phần của giây) được mã hóa theo ISO 8601 với Timezone thiết lập là UTC.
datetime-localNgày và thời gian (năm, tháng, ngày, giờ, phút, giây, các phần của giây) được mã hóa theo ISO 8601 mà không có thông tin về Timezone.
dateNgày và thời gian (năm, tháng, ngày) được mã hóa theo ISO 8601
monthMột ngày trong một năm và tháng được mã hóa theo ISO 8601
weekMột ngày trong một năm và số tuần được mã hóa theo ISO 8601
timeThời gian (giờ, phút, giây, các phần giây) được mã hóa theo ISO 8601
numberChỉ chấp nhận các giá trị số. Thuộc tính step xác định độ chính xác, mặc định là 1
rangeKiểu range được sử dụng cho các trường input mà nên chứa một giá trị từ một dãy số.
emailChỉ chấp nhận giá trị là thư điện tử. Kiểu này được sử dụng cho các trường đầu vào mà nên chứa địa chỉ Email. Nếu bạn cố gắng để đệ trình một văn bản đơn, nó buộc bạn chỉ nhập giá trị thư điện tử trong định dạng email@example.com
urlChỉ chấp nhận giá trị URL. Kiểu này được sử dụng cho các trường đầu vào mà nên chứa một địa chỉ URL. Nếu bạn cố gắng để đệ trình một văn bản đơn, nó buộc bạn chỉ nhập địa chỉ URL trong định dạng hoặc http://www.example.com hoặc http://example.com

Phần tử <output>

HTML5 giới thiệu một phần tử mới là <output> mà được sử dụng để biểu diễn kết quả của các kiểu đầu ra khác nhau, như đầu ra được viết bởi một script. Bạn có thể sử dụng thuộc tính forđể xác định mối quan hệ giữa phần tử output và các phần tử khác trong tài liệu mà ảnh hưởng tới phép tính (ví dụ như các đầu vào input hoặc các tham số). Giá trị của thuộc tính for là một danh sách các ID của các phần tử khác được phân biệt riêng rẽ.
<html>

   <script type="text/javascript">
      function showResult()
      {
         x = document.forms["myform"]["newinput"].value;
         document.forms["myform"]["result"].value=x;
      }
   </script>

   <body>

      <form action="/cgi-bin/html5.cgi" method="get" name="myform">
         Enter a value : <input type="text" name="newinput" />
         <input type="button" value="Result"  onclick="showResult();" />
         <output name="result"/>
      </form>

   </body>

</html>
Nó sẽ cho kết quả sau:
Enter a value :   

Thuộc tính placeholder

HTML5 giới thiệu một thuộc tính mới được gọi là placeholder. Thuộc tính này trên phần tử <input> và <textarea>cung cấp một chỉ dẫn tới người sử dụng về những gì có thể được nhập vào trong trường đó. Phần văn bản placeholder phải không chứa carriage returns hoặc line-feeds. Sau đây là cú pháp đơn giản cho thuộc tính placeholder:
<input type="text" name="search" placeholder="search the web"/>
Thuộc tính này được hỗ trợ chỉ bởi phiên bản Mozilla, Safari và Chrome mới nhất.
<html>

   <body>

      <form action="/cgi-bin/html5.cgi" method="get">
         Enter email : <input type="email" name="newinput" placeholder="email@example.com"/>
         <input type="submit" value="submit" />
      </form>

   </body>

</html>
Nó sẽ cho kết quả sau:
Enter email :   

Thuộc tính autofocus

Đây là một mẫu một bước (one-step) đơn giản, dễ dàng được chương trình hóa trong JavaScript tại thời điểm tải tài liệu, tự động nhận trọng tâm một trường form cụ thể. HTML5 giới thiệu một thuộc tính mới gọi là autofocusmà sẽ được sử dụng như sau:
<input type="text" name="search" autofocus/>
Thuộc tính này được hỗ trợ chỉ bởi phiên bản Mozilla, Safari và Chrome mới nhất.
<html>

   <body>

      <form action="/cgi-bin/html5.cgi" method="get">
         Enter email : <input type="text" name="newinput" autofocus/>
         <p>Try to submit using Submit button</p>
         <input type="submit" value="submit" />
      </form>

   </body>

</html>
Nó sẽ cho kết quả sau:
Enter email :  Try to submit using Submit button

Thuộc tính required

Bây giờ bạn không cần có JavaScript cho các xác nhận Client-Side như hộp văn bản trống sẽ không bao giờ được đệ trình bởi vì HTML5 giới thiệu một thuộc tính mới gọi là requiredmà sẽ được sử dụng như sau và sẽ nhấn mạnh để có một giá trị:
<input type="text" name="search" required/>
Thuộc tính này được hỗ trợ chỉ bởi phiên bản Mozilla, Safari và Chrome mới nhất.
<html>
   <body>
      <form action="/cgi-bin/html5.cgi" method="get">
         Enter email : <input type="text" name="newinput" required/>
         <p>Try to submit using Submit button</p>
         <input type="submit" value="submit" />
      </form>

   </body>

</html>
Nó sẽ cho kết quả sau:
Enter email :  Try to submit using Submit button

Bình luận