【发布时间】:2017-02-09 19:22:51
【问题描述】:
我不是 CakePHP 和 Javascript 方面的老手,所以我在编写代码时遇到了麻烦。
我正在尝试使用 Formhelper 创建一个下拉列表。有一个值显示另一个列表(例如:值 1)。如果我选择“值 1”,则会出现第二个下拉列表,如果我从第一个列表中选择另一个值,则不会出现第二个下拉列表。
到目前为止一切顺利,这是有效的。问题是,如果我从第一个列表中选择另一个选项来隐藏第二个列表,当我再次显示第二个列表时,它不会重置第二个列表选项。
每次调用 firstList 中的 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 $this->Form->input('firstList', array(... -
无论您在 firstList 中选择什么选项,您的 javascript 都将始终选择 secondList 中具有空值的选项。什么不工作?
-
哦,没有“echo”是拼写错误。我会编辑它。 ip1051,我真的不知道,因为我认为它应该这样做,但它没有选择空选项。我尝试使用 jQuery 从 secondList 中获取所有选项,以查看它是否确实具有所有选项,但它仅显示 secondList 显示时选择的选项。示例:如果我在 secondList 中选择 value2 并将选项从 firstList 更改为不显示 secondList。当我从 secondList 获得所有选项时,它只显示 value2,而不是每个选项。
标签: javascript php jquery cakephp cakephp-2.0