从属下拉框未将正确信息传递给表单

时间:2013-02-12 02:00:24

标签: jquery forms drop-down-menu

使用this question作为基础,我一直在尝试使用从属下拉框设置表单。用户从下拉框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 as from here上使用禁用;将使用儿童()让我到我想去的地方?

1 个答案:

答案 0 :(得分:0)

首先,你不能有两个具有相同名称和id的选择,它们需要不同。

其次,您无法停用<div>,只能隐藏它,但可以禁用<select>。也许尝试类似的事情:

$('#myAnswers > div').hide()
$('#myAnswers select').prop("disabled", true);
var selectedDiv = $('#myAnswers').find('#' + $(this).val());
selectedDiv.show()
selectedDiv.find('select').prop("disabled", false);