2013-02-12 70 views
0

使用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使用禁用;將使用children()讓我到我想要的地方?

回答

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);