hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
      • NodeJS
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
      • MongoDB
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
      • Spring Boot
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Lập trình Python
    • Git và Github
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
    • Mạng và truyền thông
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • HTML cơ bản – Lộ trình 16 bài
HTML cơ bản – Bài 11: Chọn đúng input, checkbox, radio và select

HTML cơ bản – Bài 11: Chọn đúng input, checkbox, radio và select

  • 19-10-2026
  • Toanngo92
  • 0 Comments

Bạn sẽ mở rộng form bằng lựa chọn môn học, thời điểm, trình độ và số buổi. Qua mỗi yêu cầu, bạn học cách chọn đúng điều khiển thay vì cố dùng input text cho mọi loại dữ liệu.

Lộ trình này học qua website “Góc học web”: trang chủ, trang bài viết và trang liên hệ. Mỗi bài giải quyết một việc cụ thể. Các bài về từng thẻ là tài liệu tra cứu, không phải danh sách bắt buộc học thuộc.

Trong bài này

  1. Chọn kiểu theo ý nghĩa dữ liệu
  2. Checkbox và radio trả lời hai nhu cầu khác nhau
  3. Nhóm điều khiển cần câu hỏi chung
  4. Select, option và lựa chọn mặc định
  5. disabled, readonly và dữ liệu gửi

Mục lục

  • Chọn kiểu theo ý nghĩa dữ liệu
  • Checkbox và radio trả lời hai nhu cầu khác nhau
  • Nhóm điều khiển cần câu hỏi chung
  • Select, option và lựa chọn mặc định
  • disabled, readonly và dữ liệu gửi
  • Ví dụ để tự chạy
  • Kết quả hiển thị
  • Lỗi thường gặp và cách sửa
  • Tự kiểm tra
  • Tra cứu khi cần

Chọn kiểu theo ý nghĩa dữ liệu

Email phù hợp type=”email”, ngày có thể dùng date, một số cần tăng giảm phù hợp number. Nhưng số điện thoại, mã bưu chính hay mã sinh viên không phải lúc nào cũng là đại lượng số để làm phép tính: tel hoặc text có thể phù hợp hơn. Số 0 đầu và dấu + cũng có thể mang ý nghĩa.

Giao diện bộ chọn ngày hoặc bàn phím gợi ý khác nhau giữa trình duyệt và thiết bị. Đừng hứa rằng cùng một kiểu input luôn hiển thị giống hệt nhau trên mọi máy. Hãy kiểm tra dữ liệu và khả năng thao tác hơn là so màu của điều khiển.

Checkbox và radio trả lời hai nhu cầu khác nhau

Checkbox cho phép bật hoặc tắt một lựa chọn độc lập; nhiều checkbox có thể cùng được chọn. Radio cùng name tạo một nhóm chọn một giá trị. Nếu mỗi radio dùng một name khác nhau, chúng không còn loại trừ nhau như nhóm bạn mong muốn.

value cho biết giá trị gửi khi được chọn. Checkbox không được chọn thông thường không tạo cặp tên–giá trị trong dữ liệu gửi. Trong ví dụ nhiều môn có thể tạo nhiều giá trị cùng khóa mon; cách phía máy chủ đọc chúng tùy nền tảng. Đừng giả định backend luôn nhận một mảng chỉ vì HTML có nhiều checkbox.

Nhóm điều khiển cần câu hỏi chung

fieldset nhóm các điều khiển liên quan; legend đặt tên chung của nhóm. Nó rất hữu ích cho nhóm radio vì nhãn Buổi sáng riêng lẻ chưa cho biết câu hỏi đang trả lời là gì. Các nhãn cá nhân vẫn cần để phân biệt từng lựa chọn.

Bạn có thể bọc input trong label như ví dụ hoặc nối for và id. Hai cách đều có ngữ cảnh phù hợp. Không lồng label vào label và không ghép nhiều điều khiển không liên quan vào một nhãn làm tên trở nên mơ hồ.

Select, option và lựa chọn mặc định

select giúp chọn trong một tập các phương án; option chứa nhãn và value tương ứng. Nếu muốn người dùng phải chủ động chọn, có thể đặt phương án đầu với value rỗng và dùng required theo cấu trúc phù hợp. Không mặc định chọn sẵn một đáp án quan trọng mà không cân nhắc trải nghiệm.

datalist là danh sách gợi ý cho input, không phải luôn giới hạn người dùng chỉ được chọn trong danh sách. Nếu yêu cầu chỉ chấp nhận một trong vài phương án, select thường dễ diễn giải hơn cho người mới.

disabled, readonly và dữ liệu gửi

disabled làm điều khiển không tham gia tương tác và thông thường không được gửi cùng form. readonly áp dụng cho những kiểu điều khiển hỗ trợ nó, vẫn có thể gửi giá trị và thường vẫn có thể focus. Không thể gắn readonly cho mọi điều khiển rồi mong radio hoặc select giữ nguyên như một trường văn bản.

autocomplete giúp trình duyệt nhận diện mục đích thông tin; nó không phải tính năng bạn nên tắt bừa cho mọi form. Khi thử bài học, chỉ dùng dữ liệu giả và quan sát từng nhóm name/value trong đường dẫn của ví dụ GET.

Ví dụ để tự chạy

Tạo một tệp HTML để thử đoạn mã sau. Nếu đây là đoạn trích trong body, hãy đặt nó vào bộ khung tài liệu đã học ở bài 3. Bộ mã tải về có sẵn ví dụ đầy đủ của bài này.

<form action="result.html" method="get">
<fieldset><legend>Bạn muốn học gì?</legend>
<label><input type="checkbox" name="mon" value="html"> HTML</label>
<label><input type="checkbox" name="mon" value="css"> CSS</label>
</fieldset>
<fieldset><legend>Thời điểm phù hợp</legend>
<label><input type="radio" name="thoi_diem" value="sang" required> Buổi sáng</label>
<label><input type="radio" name="thoi_diem" value="toi"> Buổi tối</label>
</fieldset>
<label for="trinh-do">Trình độ</label>
<select id="trinh-do" name="trinh_do"><option value="moi">Mới bắt đầu</option><option value="da-hoc">Đã học HTML</option></select>
<label for="so-buoi">Số buổi mong muốn</label>
<input id="so-buoi" type="number" name="so_buoi" min="1" max="10" value="3">
<p><button type="submit">Gửi dữ liệu giả</button></p>
</form>

Kết quả hiển thị

Có thể chọn cả HTML và CSS, nhưng chỉ một thời điểm trong nhóm radio. Chọn lại để thấy sự khác nhau giữa nhiều lựa chọn độc lập và một nhóm loại trừ nhau.

Mở ví dụ bài 11 trong tab riêng · Tải bộ ví dụ 16 bài và website hoàn chỉnh

Lỗi thường gặp và cách sửa

  • Radio dùng name khác nhau: dùng cùng name cho cùng câu hỏi.
  • Checkbox không có value rõ ràng: đặt giá trị phù hợp ứng dụng.
  • Dùng number cho số điện thoại chỉ vì gồm chữ số: chọn theo ý nghĩa dữ liệu.

Tự kiểm tra

  • Chọn hai môn rồi xem các khóa GET trong trang kết quả.
  • Giải thích vì sao fieldset vẫn hữu ích dù trang đã có các label.

Tra cứu khi cần

  • Thẻ input trong HTML
  • Thẻ option trong HTML
  • Thẻ fieldset trong HTML
  • Thẻ legend trong HTML
  • Thẻ datalist trong HTML

Tài liệu gốc về chủ đề này trên MDN / HTML Standard

Mục lục lộ trình HTML 16 bài · Thư viện bài HTML tra cứu

← Bài trước Bài tiếp theo →

Bài viết liên quan:

HTML cơ bản – Bài 16: Hoàn thiện website và chuẩn bị học CSS
HTML cơ bản – Bài 01: HTML là gì? Tạo trang web đầu tiên
HTML cơ bản – Bài 02: Phần tử, thuộc tính và cách lồng HTML
HTML cơ bản – Bài 03: Bộ khung HTML: head, body, UTF-8 và viewport
HTML cơ bản – Bài 04: Tổ chức văn bản: heading, đoạn văn và danh sách
HTML cơ bản – Bài 05: Liên kết và đường dẫn giữa các trang
HTML cơ bản – Bài 06: Hình ảnh, văn bản thay thế và chú thích
HTML cơ bản – Bài 07: Tổ chức trang bằng HTML có ngữ nghĩa
HTML cơ bản – Bài 08: Ghép trang chủ và trang bài viết hoàn chỉnh
HTML cơ bản – Bài 09: Trình bày bảng dữ liệu đúng mục đích
HTML cơ bản – Bài 10: Tạo biểu mẫu liên hệ đầu tiên
HTML cơ bản – Bài 12: Kiểm tra form, name/value và GET/POST

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 05: Đơn vị và kích thước: px, rem, %, min và max

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 02: Selector và class: chọn đúng phần tử cần sửa

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 01: Kết nối CSS với HTML và sửa quy tắc đầu tiên

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 20: Hoàn thiện website và sửa lỗi bằng DevTools

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 03: Vì sao CSS không có tác dụng? Cascade và specificity

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×