2

フォームの送信に定型化されたアンカーを多用する既存のアプリをレールに移植しています。

   <a class="lozenge-button h25 blue" href="#">
      <span class="left"></span>
      <span class="center">Send</span>
      <span class="right"></span>
   </a>

ただし、Railsでは、これらのアンカーはAjaxフォームの送信には機能しません。これは、RailsのUJSがアンカー(つまりsubmit_tag("Submit", remote: true))ではなく入力タグを必要としているように見えるためです。

アンカーにAjaxフォーム送信を起動させる方法はありますか?私はなんとかアンカーを取得して、次のフォームを送信することができました。

$('#my_anchor').click(function() { $(this).closest('form').submit();});

...しかし、Ajaxをバイパスし、ページをリロードする通常のフォーム送信を行います。

4

3 に答える 3

1

私はこの質問と非常によく似た方法でそれを解決することになりました:

<%= f.submit id: 'hidden_submit_button', style: 'display: none;' %>

<a class="lozenge-button h25 blue" href="#" onclick="$('#hidden_submit_button').click(); return false;">
    <span class="left"></span>
    <span class="center">Send</span>
    <span class="right"></span>
</a>
于 2012-06-12T15:17:01.843 に答える
0

あなたはこれを試すことができます

var form = $(this).closest('form');
$.post(form.attr('action'), form.serialize());
于 2012-06-10T17:29:43.580 に答える
0

Railsでは、remote:trueをリンクヘルパーメソッドに追加します。次に、rails_ujs(Railsの控えめなJavaScript)がajax経由での送信を処理します。コードが(ERBで)になるように、RailsAjaxガイドを参照してください。

<%= link_to the_rails_path,remote:true,class:"lozenge-button h25 blue" do %>
 <span>etc</span>
 <span>etc</span>
<%end%>
于 2015-02-07T18:44:54.713 に答える