1

我正在使用 Devise gem,它提供了“忘记密码”表格和“重新发送确认”表格。两者都包含一个电子邮件输入字段和一个提交按钮。我想将这两种形式合二为一,这样就只有一个电子邮件字段和两个提交按钮。根据是否按下“重置密码”或“重新发送确认”按钮,表单将提交给相关操作。

更新: 基本上,我想要这两种形式:

<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
  <%= devise_error_messages! %>
  <div><%= f.label :email %><br />
  <%= f.email_field :email, :autofocus => true %></div>
  <div><%= f.submit "Send me reset password instructions" %></div>
<% end %>

<%= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
  <%= devise_error_messages! %>
  <div><%= f.label :email %><br />
  <%= f.email_field :email, :autofocus => true %></div>
  <div><%= f.submit "Resend confirmation instructions" %></div>
<% end %>

共享 f.label :email 输入,但发布到按下按钮的操作。例如,当我按下按钮时,该:email值将被提交,当我按下 f.submit “向我发送重置密码说明”时,该值将被发布到.confirmation_path"Resend confirmation instructions":emailpassword_path(resource_name)

4

1 回答 1

0

最简单的解决方案是使用带有 javascriptonkeydown侦听器的输入字段,该侦听器将更新两个隐藏输入字段,用于“重新发送确认”表单和“密码重置”表单,并将电子邮件值输入到可见输入字段中。然后,电子邮件值将被提交到按下提交按钮的表单操作中。

于 2013-10-24T19:56:50.757 回答