Loại câu hỏi select_one yêu cầu người trả lời chọn đúng một tùy chọn từ danh sách đã định sẵn. Mặc định, các lựa chọn được hiển thị dưới dạng nút radio, nhưng có nhiều tùy chọn hiển thị để thay đổi bố cục và hành vi.

Cấu hình XLSForm cơ bản

Bảng tính survey:

typenamelabel
select_one yesnoconsentNgười trả lời có đồng ý không?

Bảng tính choices:

list_namenamelabel
yesnoyes
yesnonoKhông

Giá trị listname trong select_one listname phải khớp với cột list_name trong bảng tính choices.

Để biết thêm chi tiết, xem thông số kỹ thuật XLSForm.

Ứng dụng

Câu hỏi Select_one được dùng cho:

  1. Câu hỏi Có/Không
  2. Câu hỏi nhiều lựa chọn một đáp án (ví dụ: trình độ học vấn, giới tính, tình trạng hôn nhân)
  3. Đánh giá theo danh mục (ví dụ: kém / trung bình / tốt / xuất sắc)
  4. Lựa chọn phân tầng (liên kết) khi các lựa chọn được lọc dựa trên câu trả lời trước
  5. Chọn quốc gia, khu vực, quận/huyện hoặc đơn vị hành chính khác

Tùy chọn hiển thị (appearance)

Chỉ định giá trị trong cột appearance để thay đổi cách hiển thị các lựa chọn:

AppearanceMô tả
(không có)Nút radio mặc định, một nút mỗi dòng
minimalDanh sách thả xuống/spinner thay vì nút radio
quickTự động chuyển sang câu hỏi tiếp theo ngay sau khi chọn (chỉ trên mobile)
compactLưới lựa chọn thu gọn — số cột tự điều chỉnh theo chiều rộng màn hình
compact-NLưới thu gọn cố định N cột (ví dụ: compact-3)
quickcompactKết hợp quickcompact
quickcompact-NKết hợp quickcompact với N cột cố định
horizontalCác lựa chọn xếp thành hàng ngang (web)
horizontal-compactNgang, khoảng cách thu gọn (web)
likertHàng thang Likert — nhãn ở trên, nút radio ở dưới
labelChỉ hiển thị nhãn lựa chọn, không có input (dùng kết hợp với list-nolabel)
list-nolabelChỉ hiển thị input, không có nhãn (dùng kết hợp với label)
columns(N)Hiển thị theo N cột (phần mở rộng rtSurvey, ví dụ: columns(3))
distressWidget biểu tượng cảm xúc thang đo tâm lý Kessler (K10)
search-api(...)Tìm kiếm động — tải lựa chọn từ API trong thời gian thực

Ví dụ: Thang Likert

typenamelabelappearance
select_one satisfactionservice_ratingBạn hài lòng với dịch vụ như thế nào?likert

Ví dụ: Lưới 3 cột thu gọn

typenamelabelappearance
select_one regionsregionChọn khu vựccompact-3

Lựa chọn phân tầng

Lựa chọn phân tầng (liên kết) lọc các lựa chọn dựa trên giá trị được chọn ở câu hỏi trước. Dùng cột choice_filter với tên của cột từ bảng tính choices.

survey:

typenamelabelchoice_filter
select_one provinceprovinceChọn tỉnh
select_one districtdistrictChọn quận/huyệnprovince_name = ${province}

choices:

list_namenamelabelprovince_name
provincenairobiNairobi
provincemombasaMombasa
districtwestlandsWestlandsnairobi
districtkasaraniKasaraninairobi
districtnyaliNyalimombasa
districtlikoniLikonimombasa

Khi người trả lời chọn nairobi, chỉ WestlandsKasarani xuất hiện trong danh sách quận/huyện.

Dùng giá trị đã chọn trong biểu thức

Tham chiếu giá trị đã chọn (không phải nhãn) bằng ${fieldname}:

  relevant: ${consent} = 'yes'
  

Để lấy nhãn lựa chọn thay vì giá trị, dùng choice-label():

  calculate: choice-label(${education_level}, ${education_level})
  

Tùy chọn “Khác” kèm văn bản tự do

Một mẫu phổ biến là thêm tùy chọn “khác” để hiện ra ô nhập văn bản:

typenamelabelrelevant
select_one occupationjobNghề nghiệp của bạn là gì?
textjob_otherVui lòng ghi rõ${job} = 'other'

choices:

list_namenamelabel
occupationfarmerNông dân
occupationtraderBuôn bán
occupationstudentHọc sinh/sinh viên
occupationotherKhác (vui lòng ghi rõ)

Thực hành tốt

  1. Giữ danh sách ngắn gọn và loại trừ lẫn nhau — nếu người trả lời có thể muốn chọn nhiều hơn một, hãy dùng select_multiple.
  2. Đặt câu trả lời phổ biến nhất lên đầu, hoặc sắp xếp theo bảng chữ cái với danh sách dài.
  3. Luôn bao gồm tùy chọn “Không biết” hoặc “Không muốn trả lời” khi phù hợp.
  4. Dùng minimal (danh sách thả xuống) cho danh sách hơn 7–8 lựa chọn trên mobile để tiết kiệm không gian màn hình.
  5. Với lựa chọn phân tầng, thêm tất cả các cột lọc vào bảng tính choices trước khi xây dựng biểu mẫu.

Giới hạn

  • Người trả lời chỉ có thể chọn một lựa chọn — dùng select_multiple cho câu hỏi nhiều đáp án.
  • Kiểu hiển thị likert hoạt động tốt nhất với 5–7 lựa chọn vừa với một dòng.
  • Tự động chuyển quick chỉ hoạt động trên mobile; không có hiệu lực trên web.
Trang này có hữu ích không?