繁体   English   中英

动态下拉菜单Ruby on Rails form_for

[英]Dynamic Dropdown Menus Ruby on Rails form_for

以下是我要完成的工作的JSFiddle:

https://jsfiddle.net/sherali/jkw8fxzf/12/

HTML:

<select id="first-choice">
   <option value="English">English</option>
   <option value="Spanish">Spanish</option>
</select>

<select id="second-choice">
   <option value="Spanish">Spanish</option>
   <option value="English">English</option>
</select>

JS:

var $secondOption= $('#second-choice>option').clone();

$("#first-choice").change(function() {
    var userSelected = $(this).val();

    $('#second-choice').html($secondOption);

   // $("#second-choice").val(userSelected)
    $('#second-choice option[value="'+userSelected+'"').remove()
});

我正在尝试使用上面的代码,当使用如下所示的rails form_for方法时,该代码可以正常工作并将其转换为具有相同行为的对象:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
 <%= f.label :natives_language, "Native Language" %>
 <%= f.select :natives_language, [ 'Spanish', 'English'], :class => "first-choice"  %>

 <%= f.label :next_language, "I Want To Learn" %>
 <%= f.select :next_language,  [ 'English', 'Spanish'], :class => "second-choice" %>
<% end %>

产生以下html:

<label for="user_natives_language">Native Language</label>
<select id="user_natives_language" name="user[natives_language]"> 
  <option value="English">English</option>
  <option value="Spanish">Spanish</option>
</select>

<label for="user_next_language">I Want To Learn</label>
<select id="user_next_language" name="user[next_language]">
  <option value="Spanish">Spanish</option>
  <option value="English">English</option>
</select>

出于某种原因,似乎没有添加first-choice和second-choice类。 关于如何使它起作用的任何想法?

谢谢并恭祝安康。

阅读select文档 ,您可以看到它按以下顺序接受参数:

select(object, method, choices = nil, options = {}, html_options = {}, &block)

由于您要传递的内容显然是html选项,因此您可能需要使用类似

<%= f.select :next_language,  [ 'English', 'Spanish'], {}, {:class => "second-choice"} %>

有效地传递一个空哈希作为选项,然后将您的自定义类作为html_options传递。 与您的其他行类似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM