ここで問題です。Zend_Dojo_Form を使用して作成された大きな Dojo フォームがいくつかあります。問題は、検証が要素ごとに機能しているのに、どの送信ボタンでも機能しないことです。標準レイアウトは柔軟性がないため、ビュースクリプトを使用せざるを得ません。
クイックリンクを使用してマルチページフォームのページからページに移動したときに、現在のページを送信したことを確認する必要があるまでは、すべてが正常に機能していると思いました (検証あり)。
送信ボタンでクリックイベントを強制的に発生させたときに、検証が行われていないことに気付きました (または、無効な値がある場合にフォームの送信を妨げていませんでした。それらの値は送信されませんでした)。
そこで、フォームが呼び出しによって検証されることがわかったいくつかのチュートリアルを見ました
dijit.byId('form-id').validate();
または、主に(もともと)探していたショートカット
dijit.byId('form-id').submit();
byId は undefined を返すため、どちらも関数ではありません。これが意味するのは、私たちのビュースクリプトです - またはプロセス全体が何であれ - Zend で dojo フォームを生成することはとにかく部分的にブードゥーです - 実際には dojo フォーム dijit を生成しません。
では、ビュースクリプトでこれを行うにはどうすればよいでしょうか? 例えば、Dojo によってフォーム dijit の基礎となるように解釈されるようにするには、フォーム タグにどのような種類の php 呼び出しまたは属性を付加すればよいでしょうか?
ビュースクリプトのコードは次のとおりです。
<form action="<?= $this->escape($this->element->getAction()) ?>"
method="<?= $this->escape($this->element->getMethod()) ?>"
id="case-record-form">