一种解决方案可能是将两个选择连接在一起。像
<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>
当然,至少在第二种形式中,您必须确保 optionvalue
是唯一的。这是按树顺序对分层选择optgroup element
选项进行分组的推荐方法。这意味着,您增强的 javascript 也将能够从 DOM 中提取树结构。
另一种解决方案是填充状态字段服务器端,即将表单分成两个步骤,首先选择国家,然后选择州。这可以通过 cookie 或其他东西来保存所选国家/地区;并且每当提交的值country
与保存的值不同时,您需要输出一个新的(未选择的)状态select
元素。