1

我为订单创建了一个输入表单,我选择client如下:

<div class="field">  
  <%= f.label :client_short, "Client Code Short" %><br />
  <%= f.collection_select(:client_short, Client.order(:shortname), :shortname, :shortname)%>
</div>

的另一列Client是列fullname。现在,我想在不可编辑的文本字段中检索并显示基于短名称的全名值,以在订单输入期间进行验证。

我不知道要开始,所以有人可以帮我举个例子吗?

4

1 回答 1

0

用于javascript此类任务。jQuery我将用纯和做一个例子,而javascript不是使用coffescript. 打开您的client.js(以前的client.js.coffee,只需重命名它),然后将一个change事件添加到您的列表中,在另一个字段上显示全名:

$(function() {
  $('#list_id').change(function() {
    var client_id = $(this).val();
    $.get('/clients/get_fullname', client_id, function() { });
  });
});

现在,您必须在控制器名称上创建一个get_fullname响应javascript. 也许是这样的:

def get_fullname
  @full_name = Client.find(params[:client_id]).fullname
  respond_to |format|
    format.js
  end
end

现在您在文件夹上创建一个get_fullname.js.erb文件,该文件/views在不可编辑字段上显示名称:

$('#uneditable_field_id').val("<%= @item %>")

只需检查一些小的拼写错误和语法错误,就可以了。
请记住,这只是许多人执行此类操作的一种方式。

于 2012-12-14T13:34:15.123 回答