Formの値を送信の際に、Javascriptを呼び出して任意の値とフォームの値を持ちながら次のページに問題なく移動し変数も渡されていますが、QuickFormで設定したルール違反を行っても、アラートとも出ないまま、スルーしてページを移動してしまいます。
QuickFormの検証の記述のタイミングが悪いのでしょうか?
また現状のように、QuickFormの検証ルールが呼び出して展開するJavaScriptをSmartyのテンプレートに先回りして記述してよいのでしょうか?…
色々と試してみましたが、初級者の私には解決が出来ずにおります。
解決の糸口をご存知の方がいましたら、ご教授いただけると助かります。
サンプルコードはこちらを参照ください。
→http://kinsekitei.com/prototype/sample.html
よろしくお願いします。
検証のJavaScriptを別に用意したのでしょうか?
QuickFormが生成する関数と名前の衝突が起こり、これらの関数がエラーを起こし、正常に機能しないのだと思います。
検証用関数はQuickFormに任せるか、QuickFormを使わずに自力で検証用関数を用意するかの2つに1つの選択になると思います。
返信ありがとうございます。お世話になります!
検証用のJavaScriptを設置したわけでは有りません。Javascriptはショッピングカート用のものです。特に競合する関数名を見つける事もできませんでした。さらにカート用JSはテンプレートに記述しなくても作動しました。
動作の比較としてQuickFormのみとQuickForm+Smartyを見て気がついたことは、Smartyテンプレートを使用すると、QuickFormが書き出す検証用のJSがソースに書き出されていませんでした。テンプレートにて書き出す場所を設定するべきなのでしょうか?
要はQuickFormのaddRuleが作動していないってこと…これが不具合の原因なのかと思っております。これが仰る関数と名前の衝突でしょうか?
<検証が 作動 するファイル "HTML_QuickForm" >
http://kinsekitei.com/prototype/sample_b.html
<検証が 誤作動 するファイル "HTML_QuickForm+SMARTY" >
http://kinsekitei.com/prototype/sample_a.html
お手数ですが、ご教授いただけると助かります。