Rails 3 Ajax表单不发送参数
我在我的索引页面上有一个用于对记录进行排序的表单,我想为它添加一些Ajaxfunction,但由于某种原因,只要我将Ajax添加到混合中,它就不会发送我的表单参数。
这是我的表格:
"get", :remote => true do %>
和我的Ajax javascript:
jQuery(document).ready(function($) { $(function () { $('#sort-options input, .pagination a').live("click", function () { $.get(this.href, null, null, 'script'); return false; }); }); });
当我单击提交按钮并查看我的Firebug控制台以查看发生了什么时,很明显它已成功调用Ajax并且它为页面提供服务没有问题。 但是它完全忽略了我发送的params,并且在重新查询数据库时不考虑这一点。 如果我取出’:remote => true’并删除指向Ajax文件的链接,params成功地被发送回索引操作 – 只是没有Ajax 🙁
我应该补充一点,Ajax目前适用于我在同一页面上的分页。
问题是你将另一个单击处理程序绑定到提交按钮,该按钮覆盖了Rails的内置AJAXfunction( :remote => true
)。 您的选择器#sort-options input, .pagination a
不仅匹配分页链接,还匹配表单的提交按钮。 按钮没有href属性,这是您作为URL传递给$.get()
属性。 所以$.get(this.href, ...)
尝试向空URL发出一个AJAX GET请求(就好像它是一个空字符串,因此是当前的URL,没有任何GET参数)。