我不是CakePHP和Javascript的老手,所以我遇到了代碼問題。CakePHP不會將選定的值從下拉列表更改爲默認值
我想要做的是使用Formhelper創建一個下拉列表。有一個值顯示另一個列表(例如:值1)。如果我選擇「值1」,則會顯示第二個下拉列表,如果我從第一個列表中選擇另一個值,則不會顯示第二個下拉列表。
到目前爲止好,這是工作。問題是,如果我從第一個列表中選擇另一個選項來隱藏第二個列表,那麼當我再次顯示第二個列表時,它將不會重置第二個列表選項。
每當我在第一個列表中調用onChange時,如何將選中的選項重置爲secondList中的空選項?
這是代碼:
<script type="text/javascript">
function showSecondList(field) {
switch (field.val()) {
case 'value1':
$('#divSecondList').show();
$('#secondList').val("");
break;
default:
$('#secondList').val("");
$('#divSecondList').hide();
}
}
</script>
<div>
<?php $this->Form->input('firstList', array(
'label' => 'firstList',
'type' => 'select',
'empty' => '- select -',
'options' => array(
'value1' => 'value1',
'value2' => 'value2'
),
'onChange' => 'showSecondList($(\'#firstList\'));'
));
?>
</div>
<div id="divSecondList" style="display:none">
<?php echo $this->Form->input('secondList', array(
'label' => 'secondList',
'type' => 'select',
'empty' => '- select -',
'options' => array(
'value1' => 'value1',
'value2' => 'value2'
),
));
?>
</div>
它應該工作,只要確保你呼應第一選擇:'<?PHP的echo $這個 - >形式 - >輸入( 'firstList',陣列(...' – lp1051
您的javascript將始終在secondList中選擇具有空值的選項,無論您在firstList中選擇什麼選項。有什麼不起作用? – lp1051
哦,這是由於缺少「回聲」而導致的錯字錯誤,我將對其進行編輯。 Ip1051,我真的不知道,因爲我認爲它應該這樣做,但它不是選擇空的選項。我試圖從第二個列表中使用jQuery獲得所有選項,看看它是否實際上所有的選項,但它只顯示secondList顯示時選擇的選項。 例如: 如果我在secondList中選擇value2並將選項從firstList更改爲不顯示secondList。當我從第二個列表中獲得所有選項時,它只顯示值2,而不是每個選項。 –