以下代码根据父选择列表的值显示一个(许多隐藏的)子选择列表。该脚本检查是否选择了任何值(在父选择列表中),如果是,则显示相应的子选择列表。但是,如果用户为父选择列表选择一个值,发布表单,得到一条消息,即子选择列表错过输入并且(很可能)在浏览器中按下后退按钮,父选择列表仍然有一个值(我猜浏览器默认)并且子选择列表是隐藏的,这很可能会使用户感到困惑。
如何解决?
Javascript:
$('#parent-list').live("change",function() {
var value = $(this).find('option:selected').val();
$("#child-list-"+value).slideDown(200).siblings().hide();
return false;
});
HTML:
<select id="parent-list" name="parent">
<option value="1">1</option>
...
</select>
<select id="child-list-1 style="display:hidden">
<option value="a">a</option>
</select>
<select id="child-list-2 style...