【问题标题】:how to get selected value from a dropdown on click in ruby on rails?如何在点击 ruby​​ on rails 时从下拉列表中获取选定的值?
【发布时间】:2019-09-26 07:00:33
【问题描述】:

我是 ruby​​ on rails 的新手,请帮助我使用这个简单的代码: 我需要打印 'HI' 如果选择了选项 1 'BONJOUR' 如果选项 2, 'HOLA' 如果选项 3, 'NAMASTE' 如果选项 4。

在下拉列表中选择一个值并单击按钮,

<%= form_for :person do |f| %>
  <%= f.select :desired_attribute, ['option1','option2','option3','option4']%>
  <%= button_to "Show Text" , :onclick => "show_back(), return false" %>
<% end %>

【问题讨论】:

  • 您需要添加更改 w3schools.com/jsref/event_onchange.asp 事件并使用它的 id 从下拉列表中获取所选值
  • 有什么方法可以对控制器做同样的事情吗?我的意思是没有js??只是问

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

涉及您的服务器。

查看。将remote: true 添加到您的表单中。并在控制器中处理 ajax 请求。 more about ajax in rails

<%= form_for :person, remote: true do |f| %>
  <%= f.select :desired_attribute, options_for_select([ ['option1', '1'],['option2', '2'],['option3', '3'],['option4', '4']]) %>
  <%= button_to "Show Text" , :onclick => "show_back(), return false" %>
<% end %>

在你的控制器中

class PersonsController
  MY_HASH = { '1': 'HI', '2': 'BONJOUR', '3': 'HOLA', '4': 'NAMASTE' }

  def name_of_action
    respond_to do |format|
      format.js { render 'your_partial_name', name: MY_HASH[params[:person][:desired_attribute]] }
  end
end

your_partial_name.js.erb

alert("<%= name %>");

而不是MY_HASH,最好使用I18n 来处理语言问题。 more about I18n

【讨论】:

    【解决方案2】:

    使用这个语法:

    <%= f.select :point1, options_for_select([ ['option1', 'HI'],['option2', 'BONJOUR'],['option3', 'HOLA'],['option4', 'NAMASTE']]) %>
    

    你会这样下拉:

    <select id="point1">
      <option value="HI">option1</option>
      <option value="BONJOUR">option2</option>
      <option value="HOLA">option3</option>
      <option value="NAMASTE">option4</option>
    </select>
    

    下拉选项映射及其值,然后您将获得该值。

    【讨论】:

    • 谢谢,但我需要在某些标签(h1、h2 等)中以 HTML 格式呈现 HI/BONJOUR/HOLA/NAMASTE
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多