我正在使用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
按钮时,confirmation_path
值将提交到"Resend confirmation instructions"
,当我按下f.submit“发送重置密码说明”:email
值时将发布到password_path(resource_name)
。
答案 0 :(得分:0)
最简单的解决方案是使用带有javascript onkeydown
侦听器的输入字段,该字段将更新“重新发送确认”表单和“密码重置”表单的两个隐藏输入字段,并将电子邮件值输入到可见输入字段。然后,电子邮件值将提交到已按下提交按钮的表单操作中。