【问题标题】:Rails require radio button from a collectionRails 需要集合中的单选按钮
【发布时间】:2017-10-13 22:25:33
【问题描述】:

如果用户不费心选择任何单选按钮,我需要一种不发送表单的方法。

我想在视图和控制器中,而不是在模型中(甚至不应该发送数据)

<%= form_tag("/bookings/new", method: "get") do %>
  <% @flights.each do |flight| %>
    <%= radio_button_tag :flight_id, flight.id %>
  <% end %>
  <%= submit_tag "book now" %>
<% end %>

编辑,澄清
通常我会这样做
&lt;%= f.text_field :name, required: true %&gt;
但是,由于我有很多单选按钮,而我只需要一个就可以使表单工作,我不知道如何实现它

【问题讨论】:

  • “数据甚至不应该被发送”是什么意思?如果您不想提交表单(即前端和服务器之间没有请求/响应循环),那么您可能需要在前端使用 javascript。
  • 你的意思是你想在前端而不是在模型中验证?
  • 这个问题与 javascript 相关,而不是与 rails 相关。参考:stackoverflow.com/questions/1423777/…

标签: ruby-on-rails forms radio-button


【解决方案1】:

如果禁用了 javascript,您可以在模型中设置验证以查看复选框的存在。这是一种更稳健的方法。

validates :flight_id, :acceptance =&gt; true

文档在这里 - http://guides.rubyonrails.org/active_record_validations.html#acceptance

编辑

function validateCheckBox() {
    var x = document.getElementById("flight_id").checked;
    if(!x) {alert("Not checked")}        
}

<%= submit_tag "book now" , :onclick => "validateCheckBox();" %>

【讨论】:

  • 正如我在帖子的第二行中所写的那样,我想在视图和控制器中这样做,而不是在模型中
  • 当您谈论视图和控制器时,这立即转化为前端问题。使用 JavaScript。见编辑。
猜你喜欢
  • 1970-01-01
  • 2017-05-02
  • 2014-01-26
  • 2012-09-19
  • 2015-03-13
  • 2016-11-19
  • 1970-01-01
  • 2011-12-25
  • 2019-09-29
相关资源
最近更新 更多