1

JQuery Mobile の過去の v 1.1 では、フォーム送信のみに対して AJAX をオフにする機能は廃止されました (グローバルな data-ajax 設定と組み合わされました)。現在、JQM v 1.3 を使用しています。

data-ajax-enabled='true' を DOM に (JS 経由で) 挿入されるときに、すべてのフォーム タグに埋め込む簡単な解決策はありますか? 私は多くの方法を試しましたが、どれもうまくいかないようです。複数の Rails ヘルパー (button_to や destroy など) が実行時に動的に作成されるフォーム タグにラップされるため、個々のフォーム タグに data 属性を追加しても機能しないことに注意してください。

または、Rails 開発者がこれを見ている場合は、フォーム ビルダー クラスにモンキー パッチを適用して、すべてのフォーム タグに data-ajax-enabled='true' を追加する方法を教えてもらえますか? また、上記の他のヘルパーがフォーム ビルダー オブジェクトに関連付けられていない場合は、同じヘルプを要求します...?

JQuery Mobile は素晴らしいものであり、Rails も同様です。それらをうまく一緒にプレイさせようとするのは、ちょっとした挑戦です!

4

2 に答える 2

2

すべてのフォームタグにdata-ajax="false"属性を追加できます。pageshow

$(document).on('pageshow', '[data-role=page]', function () {
  $(this).find('form').each(function () {
    if(!!$(this).attr('data-ajax')) { // if attribute doesn't exist, add it
      $(this).attr('data-ajax', 'false');
    }
  });
});
于 2013-09-19T20:02:10.833 に答える
0

これは javascript を介して行うことができます。これは、レール フォーム ビルダーにモンキー パッチを適用するよりもはるかにクリーンで簡単です。

$(document.body).delegate("form",'submit',function(e){
  $(this).attr("data-ajax", "false");
});
于 2013-09-19T16:43:56.100 に答える