2017-02-17 37 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---') %> 
相關問題