3

--编辑:这已经解决了。

我想要一个按钮来执行多个 js 命令,例如

$nextButton = $form->addButton('Next');

去做:

$button_repopulate_address->js(true)->show()
$street->js(true)->closest('fieldset')->show()

什么时候:

$nextButton->isClicked()

此处的示例代码建议您将命令嵌套在 js 调用的第二个参数中,如下所示:

$g->addButton('Show all buttons')->js('click',$b1->js(null,$b2->js(null,$b3->js()->show())->show())->show());

我认为这非常难看,并且会创建超过 2 个命令很难遵循的代码。

我查看了源代码并找到了 _prepend 命令,我用它来解决我的问题:

if($nextButton->isClicked()){
      $form->js()->_prepend($street->js(true)->closest('fieldset')->show())
                 ->_prepend($button_repopulate_address->js(true)->show())
              ->execute();
}

编辑:我刚刚查看了 js() 的源代码,看来您可以将一个数组传递给 js,该数组为数组中的每个项目调用 _prepend 方法 - 很好!:

$form->js(null, array(
     $street->js(true)->closest('fieldset')->show(),
     $button_repopulate_address->js(true)->show()
));

--已解决(但也许我链接到的示例可以用这个更好的功能进行更新)

4

1 回答 1

2

这里解释:

http://agiletoolkit.org/learn/understand/chains/multi

这些示例将很快修改,我们正在开发一个新的示例站点。

于 2012-05-18T12:26:26.850 回答