2017-02-17 58 views
0

我在rails中有一个表单,其中包含不同类别名称的下拉菜单。如何在选择下拉列表中的值时在文本字段中显示对象的相应值

<td> 
    <div class="div1"> 
     <%= f.collection_select(:category_id, Category.all, :name, id: 'category_select', :include_blank => '---select waste category---') %> 
    </div> 
</td> 

和应该显示所选类别的类别代码的文本字段。

<td colspan="4"><%= f.text_field :category_id, id: 'name_text_field' %></td> 

该从哪里获得的DATAS表:

mysql> desc categories; 
+------------+--------------+------+-----+---------+----------------+ 
| Field  | Type   | Null | Key | Default | Extra   | 
+------------+--------------+------+-----+---------+----------------+ 
| id   | int(11)  | NO | PRI | NULL | auto_increment | 
| parent_id | int(11)  | YES |  | NULL |    | 
| code  | varchar(255) | YES |  | NULL |    | 
| name  | varchar(255) | YES |  | NULL |    | 
| created_at | datetime  | NO |  | NULL |    | 
| updated_at | datetime  | NO |  | NULL |    | 
+------------+--------------+------+-----+---------+----------------+ 

,这就是即时通讯将发送数据,在我的形式是为了表:

+---------------+--------------+------+-----+---------+----------------+ 
| Field   | Type   | Null | Key | Default | Extra   | 
+---------------+--------------+------+-----+---------+----------------+ 
| id   | int(11)  | NO | PRI | NULL | auto_increment | 
| quantity  | int(11)  | YES |  | NULL |    | 
| category_id | int(11)  | YES | MUL | NULL |    | 
| package_id | int(11)  | YES | MUL | NULL |    | 
| created_at | datetime  | NO |  | NULL |    | 
| updated_at | datetime  | NO |  | NULL |    | 
+---------------+--------------+------+-----+---------+----------------+ 

任何人都可以帮助我如何使相应的类别代码出现在文本框中,当我从收存箱中选择一个类别名称?

非常感谢!

+0

您必须将'change'事件绑定到第一个选择框,并在其回调中设置其他选择框的值。请尝试一下,让我们知道你面临的问题。 –

回答

0

做这样的事情。我认为您的collection_set中存在拼写错误。使用下面的代码

<%= f.collection_select(:category_id, Category.all, :id, :name, {:include_blank => '---select waste category---'}, {id: 'category_select', onchange: "$('#name_text_field').val(this.options[this.selectedIndex].innerHTML);"}) %> 

这将在文本框中显示从下拉列表中选择一些类别名称。

希望它可以帮助

+0

感谢您的帮助Gowtham,但是当我从下拉菜单中选择时,它不会在文本框中显示任何内容。 –

+0

@PhilipJayFernandez当你从下拉列表中选择一些东西时,你是否发现浏览器控制台中有任何错误? (您可以通过按F12打开浏览器控制台)。此外,您的文本字段的HTML属性ID是name_text_field权利根据您的问题 – Gowtham

0

我设法把我的问题感谢的Gowtham的想法解决

这是我做过什么:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
    $("#category_id").on("change", function() { 
    $("#code_textfield").val($("#_category_id").val()); 
    }); 
}); 
</script> 

我的文本字段:

<%= f.text_field :category_id, :id => "code_textfield" %> 
我的保管箱:
<%= f.collection_select(:category_id, Category.all, :code,:name, :include_blank => '---select waste category---') %> 
相关问题