在f.collection_select中选择一个选项后,在f.text_field中更改值

时间:2014-04-23 06:10:15

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

好吧,也许标题不能很好地解释它,但我有一个带有这些行的表格

- f.collection_select(:client, Client.all, :name, :name)%>  
 - f.text_field :nit  

根据f.text_field中选择的客户端,我需要更改:nitClient中的f.collection_select值。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

请尝试以下ajax的示例代码:

查看Ex:

 select_tag "client", options_from_collection_for_select(Client.all, "name", "title"), :prompt => "Select a client", :onchange => "update_text_box(this.value)"

text_field:

text_field_tag :nit,"",:id => "nit"  
脚本文件中的

function update_text_box(client_id) {  
 jQuery.ajax({
  url: "/update_text_box",
  type: "GET",
  data: {"client_id" : client_id},
  dataType: "text"
 success: function(data) {
  jQuery("#nit").val(data);
 }
});

}

现在更改select_tag时会发出ajax请求。然后你必须在你的动作中写入逻辑,最后你必须返回value.like

render :text => some_value.

参考this

答案 1 :(得分:0)

id选择器分配给collection_select并使用该选择器在客户端定义on change函数,该函数将通过ajax调用操作并从数据库中获取所需的值