LiftのFormが勝手にAjax用に・・・
Liftは色々便利っぽいんだけど、日本語の情報が少ない。というか英語の情報すら少ない。
つい最近はまった事。Liftのフォームで、通常通りSnippetに情報を渡して次の画面に遷移して欲しい所なのに、勝手にAjaxのフォームになってしまう。
ビューのhtmlファイルに以下のように書いた。
<lift:OAuthTest.test form="POST"> <lift:form> <test:button /> </lift:form> </lift:OAuthTest.test>
生成されたHTMLは以下の通り。
<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なので、画面遷移できない。
結局以下のように書き換えた所
<lift:OAuthTest.test form="POST"> <test:button /> </lift:OAuthTest.test>
以下のようなHTMLが生成された。
<form action="/" method="post"> <input name="F2154146126QXW" type="submit" value="Submit!" /> </form>
環境
- Lift 2.1
- Scala 2.8.0