1 つの解決策は、2 つの選択を結合することです。お気に入り
<select name="countryAndState">
<option>USA - Alabama</option>
<option>USA - Alaska</option>
...
<option>France - Alsace</option>
<option>France - Aquitaine</option>
</select>
またはそれ以上
<select name="countryAndState">
<optgroup label="USA">
<option>Alabama</option>
...
</optgroup>
<optgroup label="France">
<option>Alsace</option>
...
</optgroup>
</select>
もちろん、少なくとも 2 番目の形式では、オプションvalue
が一意であることを確認する必要があります。これは、選択オプションをツリー順に階層的optgroup element
にグループ化するための推奨される方法です。つまり、拡張 JavaScript は DOM からツリー構造を抽出することもできます。
もう 1 つの解決策は、サーバー側の州フィールドに入力することです。つまり、最初に国を選択し、次に州を選択する 2 つのステップにフォームを分割します。これは、選択した国を保存するためにクッキーまたは何かを使用して行うことができます。送信されcountry
た値が保存された値と異なる場合は常に、新しい (選択されていない) 状態select
要素を出力する必要があります。