1

我尝试隐藏/显示一个组合框,我有 2 个组合框,我希望隐藏第二个组合框,直到第一次更改。

<?php echo $this->Form->input('combobox1'); ?>
<?php echo $this->Form->input('combobox2'); ?>

所以我想我需要做类似的事情:

$this->Js->get('#idcombobox2')->effect('hide');在页面刚刚加载时隐藏组合框。

和类似的东西:

$this->Js->get('#idcombo1')->event('change', $this->Js->get('#idcombobox2')->effect('show'));因为如果第一个更改我想显示第二个。

但这不起作用。

谢谢你的帮助。

4

1 回答 1

0

您是否在视图中包含 jquery 或其他框架?

echo $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js');

如果您将其输出到<head>with 中array('inline' => false),请确保在布局中指定脚本位置:

echo $scripts_for_layout;

请记住,您还需要在视图中输出缓冲区:

echo $this->Js->writeBuffer();

编辑:实际上对我有用的代码:

$event = $this->Js->get('#combo2')->effect('show');
$this->Js->get('#combo1')->event('change', $event);

编辑 2:不知何故,我只需要使用scriptBlock. 所以整个代码会像这样

$hide = $this->Js->get('#combo2')->effect('hide');
echo $this->Html->scriptBlock($this->Js->domReady($hide));
$show = $this->Js->get('#combo2')->effect('show');
$this->Js->get('#combo1')->event('change', $show);
echo $this->Js->writeBuffer(array('inline' => false));
于 2013-10-26T23:00:50.243 回答