Phần này nói về thẻ ≶label> và ≶input> để tạo ra các điều khiển nhập dữ liệu trong form, đảm bảo bạn đã học về HTML FORM trước rồi!

Thẻ <label> trong form HTML

Thẻ <label> dùng để tạo nhãn (title, label, caption) cho các thành phần HTML, chủ yếu là các điều khiển trong FORM HTML. Mặc dù tạo nhãn cho điều khiển bạn có thể tùy thích sử dụng các phần tử HTML khác, tuy nhiên sử dụng <label> thì khi bấm vào nó, phần tử điều khiển (control) liên kết với nó tự kích hoạt focus.

Thẻ <label< và control liên kết với nhau bởi thuộc tính id của control. Ví dụ, phần tử <input> thiết lập id là là myinput, thì <label> liên kết với nó bằng cách cho thêm thuộc tính for="myinput"

<label for="myinput">Hãy nhập dữ liệu</label>
<input id="myinput" name="mynameinput">

Bạn bấm vào label hay control thì control đều tự focus để bắt đầu nhập dữ liệu.

Thẻ <input> trong HTML

Thẻ <input> là thẻ cơ bản hay sử dụng trong <form>, thẻ này tạo ra các loại điều khiển tùy vào giá trị thiết lập bởi thuộc tính type. Thẻ <input> trong html là thẻ rỗng (không có đóng thẻ), nó chỉ thiết lập qua các thuộc tính. Cú pháp cơ bản:

<input name="nameofcontrol" value="default_value" type="typeofcontrol" id="controlid"/>

Tùy thuộc vào giá trị thuộc tính type mà nó tạo ra các control khác nhau, ví dụ type="text" tạo ra hộp nhập một dòng chữ. Ngoài ra cũng tùy thuộc type mà nó có thêm các thuộc tính khác, sau đây là một số thuộc tính chung trước khi tìm hiểu từng kiểu control.

Thuộc tính Ý nghĩa
name Đặt tên control, cần có thuộc tính này mới tạo ra được trường dữ liệu gửi đi
value Tùy chọn, chứa giá trị dữ liệu mặc định ban đầu
type Thiết lập loại control sẽ tạo ra như text, radio, file ..., chi tiết từng loại xem phía dưới.
id Thuộc tính tùy chọn, thiết lập id của control, id giúp làm việc với JS, CSS và liên kết với <label>
placeholder Trong các kiểu tạo ra hộp để nhập, khi dữ liệu rỗng sẽ xuất hiện dòng chữ thiết lập bởi placeholder
<input type="text" placeholder="Gõ vào đây" />
disabled Điều khiển có thuộc tính này sẽ không nhập dữ liệu nữa (tương tác với chuột, bàn phím ...), nó hiện thị ở dạng bị mờ, sám.
<input disabled type="text" placeholder="Gõ vào đây" />
<input disabled type="submit" />

Sau đây là một số type hay dùng trong thẻ <input>:

Loại (type) Ý nghĩa
type="text"

TextBox: Hộp nhập liệu một dòng

<form action="https://httpbin.org/anything" method="post">
    <label for="firstname">Họ:</label>
    <input type="text" name="firstname" id="firstname">
    <label for="lastname">Tên:</label>
    <input type="text" placeholder="Tên bạn?" name="lastname" id="lastname">
    <input type="submit" value="Gửi">
</form>
type="password"

Hộp nhập password

<form action="https://httpbin.org/anything" method="post">
    <label for="username">Tên:</label>
    <input type="text" name="username" id="username">
    <label for="psw">Mật khẩu:</label>
    <input type="password" name="psw" id="psw">
    <input type="submit" value="Gửi">
</form> 
type="submit"

Tạo nút bấm để gửi hoặc reset dữ liêu, xem chi tiết tại: Nút bấm Submit và Reset

type="reset"
type="radio"

Tạo lựa chọn radio (chọn một giá trị trong nhóm). Các radio cùng tên tạo thành một nhóm (như gioitinh, noisinh). Khi submit giá trị trong radio được lựa chọn sẽ gửi đi (giá trị này lưu trong value).Một radio có thuộc tính checked thì mặc định nó là lựa chọn ban đầu của nhóm.

<form action="https://httpbin.org/anything" method="post">
    <p><strong>Chọn giới tính</strong></p>
    <input type="radio" name="gioitinh" value="1"> Nam<br>
    <input type="radio" name="gioitinh" value="0" checked> Nữ<br>
    <input type="radio" name="gioitinh" value="2"> Khác

    <p><strong>Chọn nơi sinh</strong></p>
    <input type="radio" name="noisinh" value="HN"> Hà Nội<br>
    <input type="radio" name="noisinh" value="ND"> Nam Định<br>
    <input type="radio" name="noisinh" value="Khac"> Khác
    <button type="submit">Gửi</button>
</form>

Chọn giới tính

Nam
Nữ
Khác

Chọn nơi sinh

Hà Nội
Nam Định
Khác
type="checkbox"

Tạo lựa chọn hộp kiểm (chọn nhiều phương án). Các checkbox cùng tên tạo thành một nhóm, nếu có nhiều lựa chọn một mảng các giá trị theo tên nhóm sẽ được gửi đi.

<form action="https://httpbin.org/anything" method="post">
    <input type="checkbox" name="love1" id="love1" value="LovePHP">
    <label for="love1">Tôi thích PHP</label><br>
    <input type="checkbox" name="love1" id="love2" value="LoveHTML">
    <label for="love2">Tôi thích HTML</label><br>
    <input type="checkbox" name="love1" id="love3" value="LoveCSS">
    <label for="love3">Tôi thích CSS</label><br>
    <button type="submit">Gửi</button>
</form>



type="color"

Tạo điều khiển chọn màu sắc, giá trị là mã màu lựa chọn (mã hex của màu - Màu sắc HTML)

<form class="p-1" action="https://httpbin.org/anything" method="post">
    <label for="color">Chọn màu yêu thích</label>
    <input type="color" name="color" id="color" value="#d400ff"><br>
    <button type="submit">Gửi</button>
</form>
type="date"

Tạo điều khiển chọn ngày

<form class="p-1" action="https://httpbin.org/anything" method="post">
    <label for="ngaysinh">Ngày sinh</label>
    <input type="date" name="ngaysinh" id="ngaysinh" value="2000-11-20">
    <button type="submit">Gửi</button>
</form>
type="email"

Tạo điều khiển nhập email, nó sẽ kiểm tra dữ liệu đúng là email mới được submit

<form class="p-1" action="https://httpbin.org/anything" method="post">
    <label for="email">Email</label>
    <input type="email" name="email" id="email" placeholder="Nhập email">
    <button type="submit">Gửi</button>
</form>
type="search"

Tạo hộp tìm kiếm: (hỗ trợ xóa nhanh chuỗi đang gõ)

<form class="p-1" action="https://httpbin.org/anything" method="post">
    <input type="search" name="search" id="search">
    <button type="submit">Tìm kiếm</button>
</form>
type="tel"

Tạo hộp nhập số điện thoại: (trên di động nó kích hoạt bàn phím bấm số)

<form class="p-1" action="https://httpbin.org/anything" method="post">
    <label for="tel">Số điện thoại</label>
    <input type="tel" name="tel" id="tel">
    <button type="submit">Gửi</button>
</form>
type="number"

Hộp nhập số: Xuất hiện nút mũi tên để tăng giảm, bước tăng giảm thiết lập qua thuộc tính step, hỗ trợ thiết lập giá trị min, max qua thuộc tính minmax

<form class="p-1" action="https://httpbin.org/anything" method="post">
    <label for="number">Nhập giá trị</label>
    <input type="number" name="number" id="number" max="100" value="10" min="10" step="2">
    <button type="submit">Gửi</button>
</form>
type="range"

Điều khiển thanh kéo trượt để chọn giá trị trong khoảng, bước tăng giảm thiết lập qua thuộc tính step, hỗ trợ thiết lập giá trị min, max qua thuộc tính minmax

<form class="p-1" action="https://httpbin.org/anything" method="post">
    <label for="number">Lựa chọn khoảng</label>
    <input type="range" name="number" id="number" max="100" value="50" min="1" step="1">
    <button type="submit">Gửi</button>
</form>
type="file"

Chọn file để upload. Để form gửi được file cần cho thêm thuộc tính enctype="multipart/form-data"

<form  action="https://httpbin.org/anything" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">Gửi</button>
</form>
type="url"

Hộp nhập địa chỉ URL: Hỗ trợ kiểm tra dữ liệu chính xác khi submit

<form  action="https://httpbin.org/anything" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">Gửi</button>
</form>

Đăng ký nhận bài viết mới