Ruby on rails 带有“其他”选项的Rails下拉列表将存储在同一字段中

Ruby on rails 带有“其他”选项的Rails下拉列表将存储在同一字段中,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我有一张这样的表格 <% simple_form_for @user do |f| %> <%= f.select :organization_name, ["Apple", "Google", "Microsoft", "Others"] %> <div id="custom_org_id hide"> <%= f.input :organization_name, label: "Others" %> </di

我有一张这样的表格

<% simple_form_for @user do |f| %>
  <%= f.select :organization_name, ["Apple", "Google", "Microsoft", "Others"] %>    
  <div id="custom_org_id hide">
    <%= f.input :organization_name, label: "Others" %>
  </div>
<% end %>
用户将看到一个下拉列表,其中包含可以选择和提交的组织名称。还有一个“其他”选项,单击该选项会打开一个输入字段,用户可以在其中键入内容。 这里的问题是,如果用户选择others选项并在其中输入一些值,那么哪个值会存储在数据库中?因为如果您观察上面的内容,在下拉列表和输入字段中,属性名称是相同的,即

:organization_name
我不想为其他人设置单独的专栏。 我们如何才能做到这一点

看看这是否有效:

<% simple_form_for @user do |f| %>
<div id="custom_org_id_select_menu">
    <%= f.select :organization_name, ["Apple", "Google", "Microsoft", "Others"] %>    
 </div>  

  <div id="custom_org_id hide">
    <%= f.input :organization_name, label: "Others" %>
  </div>
<% end %>


$( "#user_organization_name" ).keypress(function() {
    $('#custom_org_id_select_menu').removeClass();
});
一旦您开始在“其他输入”字段中输入,您的下拉列表就会消失。如果您想让它重新出现,那么只需使用jquery重新构建它。

看看这是否有效:

<% simple_form_for @user do |f| %>
<div id="custom_org_id_select_menu">
    <%= f.select :organization_name, ["Apple", "Google", "Microsoft", "Others"] %>    
 </div>  

  <div id="custom_org_id hide">
    <%= f.input :organization_name, label: "Others" %>
  </div>
<% end %>


$( "#user_organization_name" ).keypress(function() {
    $('#custom_org_id_select_menu').removeClass();
});

一旦您开始在“其他输入”字段中输入,您的下拉列表就会消失。如果您想让它重新出现,那么只需使用jquery重新构建它。

当最终用户选择从输入框中获取值时,在这种情况下,您可以禁用选择框,这将阻止提交它。是的,但我猜当用户从下拉列表中选择其他值作为字段的输入时。。虽然它被禁用,并且在用户提交时被提交。。我不知道这是否正确。。我猜。。如果这不正确,那么你说的就行了。当最终用户选择从输入框中输入值时,在这种情况下,你可以禁用选择框,这将阻止提交。是的,但我猜当用户从下拉列表中选择其他值作为字段的输入时。。虽然它被禁用,并且在用户提交时被提交。。我不知道这是否正确。。我猜。。如果这是不正确的,那么你所说的是有效的…谢谢你的回答。。。即使下拉列表消失,下拉列表中的值仍然是其他值。因此,当用户从下拉列表中选择Other并在输入字段中输入存储的值时。。下拉列表中的1个其他值或输入字段中的2个输入值,因为这两个值都是为相同的属性提交的:organization_name@AdityaY它应该是输入字段中输入的值…………但您必须进行检查以确保。我的理解是,选择菜单将基本上从表单中删除,只剩下正确的选项。但是如果用户不选择其他人呢?我不确定将提交什么值……我建议使用一个隐藏字段,然后检查该字段是否有值。谢谢您的回答。。。即使下拉列表消失,下拉列表中的值仍然是其他值。因此,当用户从下拉列表中选择Other并在输入字段中输入存储的值时。。下拉列表中的1个其他值或输入字段中的2个输入值,因为这两个值都是为相同的属性提交的:organization_name@AdityaY它应该是输入字段中输入的值…………但您必须进行检查以确保。我的理解是,选择菜单将基本上从表单中删除,只剩下正确的选项。但是如果用户不选择其他人呢?我不确定将提交什么值……我建议使用一个隐藏字段,然后检查该字段是否有值。