如何在具有多个<form>元素的单个页面上动态唯一地标识提交的表单?</form>

时间:2012-06-17 04:01:56

标签: jquery ruby-on-rails-3 devise

当用户提交表单时,我要做的是hide form元素,并通过AJAX显示“谢谢”消息。

我遇到的问题是页面至少有3个看起来相同的表单。

这也是一个Devise注册表单,那么如何隐藏用户提交的特定表单而不是页面上的其他2表单?使用jQuery?

这是我的表单代码:

<%= 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 %>

感谢。

2 个答案:

答案 0 :(得分:1)

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

做这份工作?这应该隐藏提交表单。虽然表单看起来相同,但它们应该有不同的ID,或者至少是类,您可以在jQuery中轻松引用它们。

答案 1 :(得分:0)

这是我制作的一个演示,它将为您提供一种满足您需求的方法。

see the demo here

正如MBHNYC所说,你需要为每个表格都有唯一的ID,以便它能正常运作。