- 编辑:现在已经解决了。
我想要一个按钮来执行多个js命令,例如
$nextButton = $form->addButton('Next');
要做:
$button_repopulate_address->js(true)->show()
$street->js(true)->closest('fieldset')->show()
何时:
$nextButton->isClicked()
示例代码here建议您将命令嵌套在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()
));
- 已解决(但我链接到的example可能会使用这个更好的功能进行更新)
答案 0 :(得分:2)