LiftのFormが勝手にAjax用に・・・
Liftは色々便利っぽいんだけど、日本語の情報が少ない。というか英語の情報すら少ない。
つい最近はまった事。Liftのフォームで、通常通りSnippetに情報を渡して次の画面に遷移して欲しい所なのに、勝手にAjaxのフォームになってしまう。
ビューのhtmlファイルに以下のように書いた。
1 2 3 4 5 | < lift:OAuthTest.test form = "POST" > < lift:form > < test:button /> </ lift:form > </ lift:OAuthTest.test > |
生成されたHTMLは以下の通り。
1 2 3 4 5 | < form action = "/" method = "post" > < form id = "F1135585049605GDO" action = "javascript://" onsubmit = "liftAjax.lift_ajaxHandler(jQuery('#'+"F1135585049605GDO").serialize(), null, null, "javascript");return false;" > < input name = "F1135585059604LJH" type = "submit" value = "Authenticate?" /> </ form > </ form > |
この時点でちゃんとHTMLを見とけば良かったんだけど、最初はformタグが2重になってる事に気づかなかった。で、中のformのactionがjavascriptなので、画面遷移できない。
結局以下のように書き換えた所
1 2 3 | < lift:OAuthTest.test form = "POST" > < test:button /> </ lift:OAuthTest.test > |
以下のようなHTMLが生成された。
1 2 3 | < form action = "/" method = "post" > < input name = "F2154146126QXW" type = "submit" value = "Submit!" /> </ form > |
環境
- Lift 2.1
- Scala 2.8.0