Rails - 基于无线电选择更改表单操作 [英] Rails - change form action based on radio selection

查看:23
本文介绍了Rails - 基于无线电选择更改表单操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 Rails 菜鸟.我不会撒谎的.我的任务是采用两种形式并将它们变成一种动态形式.这是一个登录/注册表格.我唯一的问题是如何处理代码的 Rails 部分.使用 jQuery,我可以轻松替换 HTML 表单操作,但我将如何根据登录或注册单选选择替换 Rails 代码中的操作/目标.

I'm a Rails noob. I won't lie. I've been tasked with taking two forms and turning them into one dynamic form. This is a Login/Sign Up form. The only issue I have is how to handle the Rails portion of the code. Using jQuery, I could have easily replaced HTML form actions, but how would I approach replacing the action/destination in the rails code based on a login or sign up radio selection.

<%= form_tag login_path, :id => '_login_form' do %>
<% end %>

<%= form_tag sign_up_path, :id => '_sign_up_form' do %>
<% end %>

推荐答案

我看到两个选项可以解决您的问题.

I see two options to solve your problem.

使用 javascript,您可以根据选择的单选按钮更改表单的操作.

Using javascript you can change the action of a form, based on the radio button selected.

$("#radio").change(function() {
  var action = $(this).val() == "some_value" ? "login" : "sign_up";
  $("#your-form").attr("action", "/" + action);
});

或者您可以在一个操作中处理这两种方法并分别处理每个选项

Or you can handle both methods in a single action and treat each of the options separatedly

#view
<p> <%= radio_button_tag :option, "login" %> Orange </p>
<p> <%= radio_button_tag  :option, "sign_up" %> Peach </p>

#controller
if params[:option] == "login"
  #do login
elsif params[:option] == "sign_up"
  #do sign up
end

我希望这会有所帮助!

这篇关于Rails - 基于无线电选择更改表单操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆