以这个问题为基础,我一直在尝试使用相关下拉框设置表单。用户从下拉框 1 中选择他们想要的信息会话,隐藏的下拉框将显示该(并且仅该)信息会话的相关日期。有 2 个(最初是隐藏的)下拉框,显示哪个取决于用户在第一个下拉框中选择的内容。
它在视觉上有效,但在尝试发布数据时效果不佳。从我通过 Firebug 可以看出,“禁用”在任何时候都不会从“真”改变,所以表单抱怨默认不是一个选项。firstChoice 选项失败,secondChoice 选项通过正常。
HTML
<div id="myQuestions">
<select id="QuestionOptions" class="required" name="SESHTYPE">
<option selected="selected" value="Default">Choose information session.</option>
<option value="firstChoice">First One</option>
<option value="secondChoice">Second One</option>
</select>
</div>
<div id="myAnswers">
<div id="firstChoice" disabled="true" style="display: none;">
<select id="mce-INFODATE" name="INFODATE">
<option value="Default">Please choose a date:</option>
<option value="7th March">Thursday, 7th March</option>
<option value="20th March">Wednesday, 20th March</option>
<option value="11th April">Thursday, 11th April</option>
</select>
</div>
<div id="secondChoice" disabled="true" style="display: none;">
<select id="mce-INFODATE" name="INFODATE">
<option value="Default">Please choose a date:</option>
<option value="16th April">Tuesday, 16th April</option>
</select>
</div>
Javascript
jQuery(document).ready(function($) {
$('#QuestionOptions').change(function () {
$('#myAnswers > div').hide().prop("disabled", true);
$('#myAnswers').find('#' + $(this).val()).show().prop("disabled", false);
});
});
编辑:多一点挖掘,我发现你不能像从这里一样在div 上使用 disabled ;使用 children() 会让我到达我想去的地方吗?