3

-編集:これは解決されました。

1つのボタンで複数のjsコマンドを実行したい。

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

すること:

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

いつ:

$nextButton->isClicked()

ここでのサンプルコードは、次のようにjs呼び出しの2番目のパラメーターにコマンドをネストすることを示しています。

$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()のソースを調べたところ、配列内の各アイテムに対して_prependメソッドを呼び出す配列をjsに渡すことができるようです-いいですね!:

$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 に答える