select_one質問タイプは、回答者が定義済みのリストからちょうど1つのオプションを選択するように促します。デフォルトではラジオボタンとして表示されますが、レイアウトと動作を変更するための豊富な外観オプションが利用できます。

基本XLSForm仕様

surveyワークシート:

typenamelabel
select_one yesnoconsent回答者は同意しましたか?

choicesワークシート:

list_namenamelabel
yesnoyesはい
yesnonoいいえ

select_one listnamelistnameはchoicesワークシートのlist_name列と一致しなければなりません。

詳細についてはXLSForm仕様を参照してください。

用途

Select_one質問は以下に使用されます:

  1. はい/いいえの質問
  2. 単一回答の選択肢(例:学歴、性別、婚姻状態)
  3. カテゴリ評価(例:悪い / 普通 / 良い / 優秀)
  4. 前の回答に基づいて選択肢がフィルタリングされるカスケード(リンク)選択
  5. 国、地域、地区、その他の行政単位の選択

外観オプション

appearance列に値を指定して選択肢の表示方法を変更します:

外観説明
(なし)デフォルトのラジオボタン、1行に1つ
minimalラジオボタンの代わりに単一のドロップダウン/スピナー
quick選択後すぐに次の質問に自動進行(モバイルのみ)
compactコンパクトな選択肢グリッド — 画面幅に応じて列数を調整
compact-NN列に強制されたコンパクトグリッド(例:compact-3
quickcompactquickcompactを組み合わせ
quickcompact-NN列固定のquickcompactの組み合わせ
horizontal水平行に配置された選択肢(Web)
horizontal-compact水平、コンパクトスペーシング(Web)
likertリッカートスケール行 — 上にラベル、下にラジオボタン
label入力なしで選択肢ラベルのみを表示(list-nolabelとペアで使用)
list-nolabelラベルなしで入力のみを表示(labelとペアで使用)
columns(N)N列で表示(rtSurvey拡張、例:columns(3)
distressKessler心理的苦痛(K10)感情アイコンウィジェット
search-api(...)ダイナミック検索 — 実行時にAPIから選択肢を読み込む

例:リッカートスケール

typenamelabelappearance
select_one satisfactionservice_ratingサービスにどれくらい満足していますか?likert

例:コンパクト3列

typenamelabelappearance
select_one regionsregion地域を選択してくださいcompact-3

カスケード選択

カスケード(リンク)選択は、前の質問で選択された値に基づいて選択肢をフィルタリングします。choice_filter列にchoicesワークシートの列名を使用します。

survey:

typenamelabelchoice_filter
select_one provinceprovince県を選択してください
select_one districtdistrict地区を選択してくださいprovince_name = ${province}

choices:

list_namenamelabelprovince_name
provincenairobiNairobi
provincemombasaMombasa
districtwestlandsWestlandsnairobi
districtkasaraniKasaraninairobi
districtnyaliNyalimombasa
districtlikoniLikonimombasa

回答者がnairobiを選択すると、地区リストにはWestlandsKasaraniのみが表示されます。

式で選択された値を使用する

選択された(ラベルではなく)を${fieldname}で参照します:

  relevant: ${consent} = 'yes'
  

値の代わりに選択肢ラベルを取得するには、choice-label()を使用します:

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

テキストフィールド付きの「その他」オプション

一般的なパターンは、テキストフィールドを表示する「その他」オプションを含めることです:

typenamelabelrelevant
select_one occupationjobあなたの職業は何ですか?
textjob_other詳細を指定してください${job} = 'other'

choices:

list_namenamelabel
occupationfarmer農業
occupationtrader商業
occupationstudent学生
occupationotherその他(詳細を指定してください)

ベストプラクティス

  1. リストを短く相互に排他的に保ってください — 回答者が複数を選びたい場合はselect_multipleを使用してください。
  2. 最も一般的な回答を最初に置くか、長いリストではアルファベット順に並べてください。
  3. 関連する場合は常に「わからない」または「回答しない」オプションを含めてください。
  4. モバイルで画面スペースを節約するために、7〜8個以上の選択肢があるリストにはminimal(ドロップダウン)を使用してください。
  5. カスケード選択の場合は、フォームを構築する前にchoicesワークシートのすべてのフィルター列を追加してください。

制限事項

  • 回答者は1つの選択肢しか選べません — 複数回答の質問にはselect_multipleを使用してください。
  • likert外観は1行に収まる5〜7個の選択肢で最もよく機能します。
  • quick自動進行はモバイルのみです;Webフォームには効果がありません。
このページは役に立ちましたか?