By GokiSoft.Com| 08:42 06/06/2020|
Tài Liệu HTML

HTML Forms - Các biểu mẫu trong HTML


Một biểu mẫu trong HTML được dùng để thu thập thông input vào của người dùng. Thông tin người dùng nhập vào có thể sau đó được gửi lên một máy chủ để xử lý.





ví dụ






<!DOCTYPE html>
<html>
<body>

<h2>HTML Forms</h2>

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form> 

<p>If you click the "Submit" button, the form-data will be sent to a page called "/action_page.php".</p>

</body>
</html>





Thành phần <form>


Thành phần <form> trong HTML định nghĩa một biểu mẫu để thu thập input của người dùng:

<form>
.
form elements
.
</form>


Một biểu mẫu HTML chứa các thành phần biểu mẫu.

Các thành phần biểu mẫu là một kiểu khác của thành phần input, như :text field, checkboxs, radio buttons, submit buttons, và nhiều hơn.





Thành phần <input>

 

Thành phần <input> là thành phần biểu mẫu quan trọng nhất.

Thành phần  <input> được hiển thị trong một nhiều cách, tùy thuộc vào type thuộc tính.

Đây là một vài ví dụ:

TypeMô tả
<input type="text">Defines a single-line text input field
<input type="radio">Defines a radio button (for selecting one of many choices)
<input type="submit">Defines a submit button (for submitting the form)




Text Fields


<input type="text"> xác định một trường input cho phép nhập vào văn bản.

ví dụ

Một biểu mẫu với hai trường input văn bản :

<form>
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname">
</form>
<!DOCTYPE html>
<html>
<body>

<h2>Text input fields</h2>

<form>
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe">
</form>

<p>Note that the form itself is not visible.</p>

<p>Also note that the default width of text input fields is 20 characters.</p>

</body>
</html>


Đây là cách nó sẽ được hiển thị trên trình duyệt:

First name:

Last name:

Ghi chú: Bản thân biểu mẫu không hiển thị. Đồng thời hãy ghi chú lại, độ rộng mặc định của một trường nhập vào là 20 ký tự.





Thành phần <label>


Để ý việc sử dụng của thành phần <label> trong ví dụ trên.

Thành phần <label> hữu dụng cho trình đọc màn hình người dùng, bởi vì trình đọc màn hình sẽ đọc lên nhãn khi người dùng tập trung vào thành phần input .

Thành phần <label> cũng giúp người dùng có sự khó khăn khi bấm vào các vùng nhỏ (như radio buttons hay checkboxes) - bởi vì khi người dùng bấm văn bản giữa thành phần <label>, nó sẽ bật tắt radio button/checkbox.

Thuộc tính for thẻ <tag> nên giống với thuộc  id của thành phần <input> để rằng buộc chúng với nhau.




Radio Button


<input type="radio"> xác định một radio button.

Radio buttons cho phép người dùng chọn MỘT trong số lượng lựa chọn giới hạn.

ví dụ

Một biểu mẫu với radio buttons:

<form>
  <input type="radio" id="male" name="gender" value="male">
  <label for="male">Male</label><br>
  <input type="radio" id="female" name="gender" value="female">
  <label for="female">Female</label><br>
  <input type="radio" id="other" name="gender" value="other">
  <label for="other">Other</label>
</form>
<!DOCTYPE html>
<html>
<body>

<h2>Radio Buttons</h2>

<form>
  <input type="radio" id="male" name="gender" value="male">
  <label for="male">Male</label><br>
  <input type="radio" id="female" name="gender" value="female">
  <label for="female">Female</label><br>
  <input type="radio" id="other" name="gender" value="other">
  <label for="other">Other</label>
</form> 

</body>
</html>


Đây là cách mà code trên sẽ được hiển thị trong một trình duyệt:


 
 
 


Submit Button


<input type="submit"> xác định một nút cho việc gửi dữ liệu biểu mẫu cho trình xử lý biểu mẫu.

Trình xử lý biểu mẫu thường là một trang trên máy chủ có tập lệnh để xử lý dữ liệu đầu vào.

Trình xử lý biểu mẫu được xác định trong thuộc tính action của biểu mẫu.


ví dụ

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form>
<!DOCTYPE html>
<html>
<body>

<h2>HTML Forms</h2>

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form> 

<p>If you click the "Submit" button, the form-data will be sent to a page called "/action_page.php".</p>

</body>
</html>


Đây là cách mà code HTML trên sẽ được hiển thị trong một trình duyệt:

First name:

Last name:









Thuộc tính action


Thuộc tính action xác định hành động sẽ được thực hiển khi biểu mẫu được gửi.

Thông thường, các dữ liệu biểu mẫu được gửi cho một trang trên máy chú khi người dùng bấm vào nút gửi.

Trong ví dụ trên, dữ liệu biểu mẫu được gửi đến một trang trên máy chủ được gọi là "/action_page.php". Trang này chứa các tập lệnh phía máy chủ có thể xử lý dữ liệu biểu mẫu:

<form action="/action_page.php">


Nếu thuộc tính action bị bỏ qua, hành động sẽ được đặt đến trang hiện tại.




Thuộc tính target


Thuộc tính target xác định nếu kết quả được gửi đi sẽ được mở trong một tab trình duyệt mới, một khung, hoặc trong cửa sổ hiện tại.

Giá trị mặc đị là  "_self" nghĩa là biểu mẫu sẽ được gửi đến cửa sổ hiện tại.

Để làm kết quả biểu mẫu mở trong một tab trình duyệt mới. dùng giá trị "_blank".

ví dụ

Sau đây, kết quả được gửi sẽ mở trong một tab trình duyệt mới:

<form action="/action_page.php" target="_blank">
<!DOCTYPE html>
<html>
<body>

<h2>The form target attribute</h2>

<p>When submitting this form, the result will be opened in a new browser tab:</p>

<form action="/action_page.php" target="_blank">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form> 

</body>
</html>


Các giá trình hợp lệ khác là "_parent", "_top", hoặc một tên đại diện cho tên của một iframe.





Thuộc tính method


Thuộc tính  method xác định phương thức HTTP (GET hay POST) được sử dụng để gửi dữ liệu biểu mẫu.

ví dụ

Sử dụng phương thức GET khi gửi biểu mẫu:

<form action="/action_page.php" method="get">
<!DOCTYPE html>
<html>
<body>

<h2>The method Attribute</h2>

<p>This form will be submitted using the GET method:</p>

<form action="/action_page.php" target="_blank" method="get">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form>

<p>After you submit, notice that the form values is visible in the address bar of the new browser tab.</p>

</body>
</html>


Hoặc:

ví dụ

Sử dụng phương thức POST khi gửi biểu mẫu:

<form action="/action_page.php" method="post">
<!DOCTYPE html>
<html>
<body>

<h2>The method Attribute</h2>

<p>This form will be submitted using the POST method:</p>

<form action="/action_page.php" target="_blank" method="post">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form>

<p>After you submit, notice that, unlike the GET method, the form values is NOT visible in the address bar of the new browser tab.</p>

</body>
</html>





Khi nào sử dụng GET?


Phương thức HTTP mặc định khi gửi dữ liệu biểu mẫu là GET.

Tuy nhiên, khi GET được sử dụng, dữ liệu biểu mẫu sẽ có thể nhìn thấy trong thanh địa chỉ của trang:

/action_page.php?firstname=John&lastname=Doe


Ghi chú về GET:

  • Nối dữ liệu biểu mẫu vào URL theo cặp tên/giá trị.
  • Độ dài của một URL có giới hạn (2048 ký tự)
  • Không bao giờ dùng GET để gửi dữ liệu nhạy cảm! (will be visible in the URL)
  • Hữu dụng cho gửi biểu mẫu khi người dùng muốn ghi dấu trang kết quả
  • GET tốt hơn cho các dữ liệu không cần bảo mật, như một chuỗi tìm kiếm trên Google





Khi nào sử dụng POST?


Luôn sử dụng POST nếu dữ liệu biểu mẫu chứa các thông tin nhạy cảm hoặc cá nhân. Phương thức POST không hiển thị dữ liệu biểu mẫu trong thanh địa chỉ của trang.

Ghi chú về POST:

  • POST không có giới hạn kích thước, và có thể được sử dụng để gửi một số lượng lớn dữ liệu.
  • Gửi biểu mẫu với POST không thể được ghi dấu trang






Thuộc tính name



Mỗi một trường đầu vào phải có một thuộc tính  name để được gửi.

Nếu thuộc tính  name bị bỏ qua, dữ liệu của thành nhập vào sẽ không được gửi.

ví dụ

Ví dụ này sẽ không gửi giá trị của thanh đầu vào "First name" :

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" value="John"><br><br>
  <input type="submit" value="Submit">
</form>
<!DOCTYPE html>
<html>
<body>

<h2>The name Attribute</h2>

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" value="John"><br><br>
  <input type="submit" value="Submit">
</form> 

<p>If you click the "Submit" button, the form-data will be sent to a page called "/action_page.php".</p>

<p>Notice that the value of the "First name" field will not be submitted, because the input element does not have a name attribute.</p>

</body>
</html>


Đây là danh sách toàn bộ các thuộc tính của  <form> :

Thuộc tínhMô tả
accept-charsetChỉ định bộ ký tự được sử dụng trong biểu mẫu được gửi (mặc định: bộ ký tự của trang).
actionChỉ định một địa chỉ (url) nơi gửi dữ liệu (mặc định: trang được gửi).
autocompleteChỉ định nếu trình duyệt nên tự điền biểu mẫu (mặc định: on).
enctypeChỉ định mã hóa của dữ liệu được gửi (mặc định: là mã hóa URL).
methodChỉ định phương thức HTTP được sử dụng khi gửi biểu mẫu (mặc định: GET).
nameChỉ định tên được đùng để xác định biểu mẫu (dùng DOM : document.forms.name).
novalidateChỉ định trình duyệt không nên xác thực biểu mẫu.
targetChỉ định đích của địa chỉ trong thuộc tính action (mặc định: _self).