0

私がやろうとしているのは、ユーザーがフォームを送信したときhideform要素に対して、AJAX を介して「ありがとう」メッセージを表示することです。

私が抱えている問題は、同じように見える少なくとも 3 つのフォームがページにあることです。

これもDevise登録フォームなので、jQueryを使用して、ページ上の他の2つではなく、ユーザーが送信した特定のフォームを非表示にするにはどうすればよいですか?

これは私のフォームコードです:

<%= form_for(resource, :as => resource_name, :class => "send-with-ajax", :url => user_registration_path(resource), :validate => true, :html => { :id => 'user_new' }, :remote => true) do |f| %>
    <div class="six columns alpha"> 
       <%= f.text_field :email, :placeholder => "your-email@address.com", :input_html => {:autofocus => true}, :validate => true %>
    </div>              
    <div class="three columns sign-up alpha">
          <%= f.submit :label => "Submit", :value => "Sign Me Up!"  %>
      <div class="ajax-response"><%= devise_error_messages! %></div>
          </div>
<% end %>

ありがとう。

4

2 に答える 2

1

しません

$('#user_new').submit(function() { $(this).hide(); });

仕事をしますか?これにより、送信時にフォームが非表示になります。フォームは同じように見えますが、ID が異なるか、少なくともクラスが異なる必要があり、jQuery で簡単に参照できます。

于 2012-06-17T04:11:56.613 に答える
0

これは私が作成したデモで、要件に対する可能なアプローチを提供します。

ここでデモを見る

MBHNYC が述べたように、フォームが適切に機能するように、フォームごとに一意の ID が必要です。

于 2012-06-17T04:20:24.033 に答える