Rails 2.3.5
使用Protype,我有一个函数,当一个Employee ID被输入表单时被调用。该函数将进行AJAX调用,然后将Employee的详细信息填入表单(数字,位置,标题,经理等)。我正在尝试学习如何使用jQuery做同样的事情。
表格上的员工字段
<%= f.text_field :employee_id, :maxlength => 7, :onkeyup => 'employee_lookup(event)' %>
OLD PROTOTYPE CONTROLLER OUTPUT:
employee = CorporateDirectory.find_by_employee_id(params[:employee_id])
render :text => employee.first_name+", "+employee.last_name+","+employee.desk_phone+", (etc.)
将返回的数据插入表单中的功能
var employeeData = (x.responseText.split(','));
$('employee_first_name).value = employeeData [0];
$('emplyee_last_name').value = employeeData [1];
$('employee_desk_phone').value = employeeData [2];
我使用过:onkeyup然后在我得到的函数中,如果它没有正确数量的字符(7)或者格式错误(不是2个alpha + 5个数字),则返回false。
如果有一个很好的例子或教程如何用jQuery和Rails做同样的事情,我很乐意看到它。或者,对我究竟应该阅读的具体内容进行单挑会是受欢迎的。我一直在使用jQuery AJAX用部分替换html并用视图或部分加载UI模式,但我还没有做任何事情,我必须用jQuery请求数据然后让jQuery使用数据itlef。在这种情况下,我需要将一个Rails模型对象发送到jQuery,其中jQuery可以读取返回的数据数组并正确填写匹配的表单字段。谢谢!
答案 0 :(得分:1)
您需要在控制器中使用自定义方法,例如:
def search
@employee = CorporateDirectory.find_by_employee_id(params[:employee_id])
end
然后使用this发布到搜索方法。
在您的控制器中,您希望搜索方法响应:js,默认情况下,它将呈现search.js模板。您可以使用search.js.erb并在视图中使用@employee对象。您的jQuery脚本将如此:
$('#employee_first_name').val('<%= @employee.first_name %>');