我不是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,而不是每个选项。 –