0

我正在尝试address通过 Ajax 更新文本区域:

应用程序.js

$("#invoice_project_id").change(function() {
    $.ajax({
        url: '/invoices/get_recipient',
        data: 'project_id=' + this.value,
        dataType: 'script'
    })
});

invoices_controller.rb

def get_recipient
  project = Project.find(params[:project_id])
  @recipient = project.person.address
end  

get_recipient.js.erb

$('#invoice_recipient').val("<%= @recipient %>");

显然,不能以这种方式通过 Ajax 填充文本区域,可能是由于address.

当我使用另一个属性时,例如first_name,整个事情工作得很好:

@recipient = project.person.first_name

我怎样才能让它和一个一起工作address

我猜地址内的换行符需要以某种方式转义,但我还没有找到一种方法来做到这一点。

谢谢你的帮助!

4

1 回答 1

1

如果您可以用其中的文本替换更改返回的 jQuery,并发送直接文本,您可以执行以下操作:

$("#invoice_project_id").change(function() {
   var value=$(this).val();
    $.get('/invoices/get_recipient', {project_id= : value}  function(response) {
        $('#invoice_recipient').val(response);
    })
});​

将换行符作为直接文本而不是脚本发送应该在将它们添加到 textarea 时保留它们

于 2012-10-21T21:37:12.177 回答