1

「パスワードを忘れた」フォームと「再送信確認」フォームを提供するDevise gemを使用しています。どちらもメールの入力欄と送信ボタンで構成されています。これらの 2 つのフォームを 1 つに結合して、1 つの電子メール フィールドと 2 つの送信ボタンのみを作成したいと考えています。「パスワードのリセット」または「確認の再送信」ボタンが押されたかどうかに応じて、フォームは関連付けられたアクションに送信されます。

更新: 基本的に、次の 2 つの形式が必要です。

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

onkeydown最も簡単な解決策は、「再送信確認」フォームと「パスワード リセット」フォームの 2 つの非表示の入力フィールドを、表示されている入力フィールドに入力された電子メールの値で更新する JavaScriptリスナーを含む入力フィールドを用意することです。電子メールの値は、送信ボタンが押されたフォーム アクションに送信されます。

于 2013-10-24T19:56:50.757 に答える