jQueryMobile 経由で submit すると、次のページの  .ready() などが動かない

・きっかけはハッカソン
2013/10/12-13 は、名古屋で「シビックハック and Mashup Camp」 をオーガナイズしていた。
オーガナイザなので、あとは、ゆったりと皆さんの開発の様子を見学してればよいかな、と思っていたのだが、ひょんな事から、オーガナイザスタッフ+審査員で開発することに。

開発中のシステムについてはあらためて紹介することとして、困ったことは、特定のページで javascript が動かない、という現象が発生したことだ。なぜか reload すると動く。javascript のロードの問題かと思い、考えられるあらゆる事にチャレンジしてみたのだが、ダメ。

・問題事象
現象としては、jQueryMobile の form タグ中の button submit で、別のページに遷移すると、そのページの body onload や ready などのJavascript が動かない、という現象。

ハッカソンという時間との闘いの中で、こういった謎の現象に見舞われるのは本当に不幸だ。jQuery submit 関係で検索してもまったく見つからない。

うーん。で、今朝から使っているライブラリを一つずつはずして再現性の検証を行った。すると、特定のjsライブラリを入れるとsubmitが動かない。いろいろ検索した結果わかったのは、jQueryMobileがページ繊維をAjaxで行っている、ということであった。jQueryMobileを真面目に勉強せずに使ったのが悪かったのか。。。「jQueryMobile ajax 遷移」で検索すると、いろいろと情報が出てくる。

結論としては、

<form action="next.html" method="get" data-ajax="false">

と、form タグに、"data-ajax=false" と書くだけであった。あの時間を返して欲しい。。。