3

2 つのボタンを持つ @object の form_for があります。

最初のボタンは「アクションを表示」をレンダリングしますが、2 番目のボタンは同じフォームを再度レンダリングします。だから後者はajax対応にしてほしい。

非 ajax ボタンと ajax ボタンを同じ形式にすることは可能ですか、それとも戦略を変更する必要がありますか?

両方のボタンが ajax になるように「remote: true」を指定した form_for が必要かもしれませんが、適切な「ビューを表示」をレンダリングする最初のボタンをどのように管理すればよいでしょうか?

それとも、唯一の本当の解決策は、2 つの異なるフォームを持つことでしょうか?

ありがとうございました。

4

2 に答える 2

2

ボタン イベントにフックしonClick、属性を削除しdata-remote="true"、フォームを送信して、data-remote="true"再度追加することができます。これが本当に最善の方法かどうかはわかりませんが、うまくいくはずです。

function sendWithoutAjax() {
  $('my_form_id').removeAttr("data-remote");
  $('my_form_id').submit();
  $('my_form_id').data( "remote", "true" );
}

このようなもの...

于 2012-04-16T08:41:58.307 に答える
0

最も簡単な方法は、 jQuery Formプラグインを使用することだと思います。次に、ajax 以外のアクションに送信するフォームを作成するだけで、送信ボタン自体に ajax 機能が追加されます。

$(".ajax_submit_button").click(function() {
  $(this).closest("form").ajaxSubmit({
    // options go here
    ...
  });
  return false;
});
于 2012-04-16T08:43:01.007 に答える