Rails3Ajax表单不发送参数
Rails 3 Ajax Form Not Sending Params
我的索引页上有一个表单,我正在使用它来对记录进行排序,我想为它添加一些Ajax功能,但由于某种原因,它不会在我将Ajax添加到组合中后立即发送我的表单参数。
这是我的表格:
<div id="sort-options">
<%= form_tag uploads_path, :method => "get", :remote => true do %>
<%= select_tag "sort", options_for_select([["Creation Date", "created_at"], ["File Name", "name"], ["Rating", "rating_average"], ["Downloads", "downloads"]]) %>
<%= select_tag "direction", options_for_select([["Descending", "desc"], ["Ascending", "asc"]]) %>
<%= submit_tag "Sort" %>
<% end %>
</div>
还有我的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,并且为页面提供了服务。然而,它完全忽略了我发送的参数,并且在重新查询数据库时没有考虑到这一点。如果我去掉":remote=>true"并删除指向Ajax文件的链接,则params成功地被发送回索引操作-只是没有Ajax:(
我应该补充一点,Ajax目前用于分页,我在同一个页面上也有。
问题是,您将另一个点击处理程序绑定到提交按钮,这将覆盖Rails内置的AJAX功能(:remote => true
)。选择器#sort-options input, .pagination a
不仅匹配分页链接,还匹配表单的提交按钮。按钮没有href属性,这是您作为URL传递给$.get()
的属性。因此,$.get(this.href, ...)
尝试对一个空URL(其行为就好像它是一个空字符串,因此是当前URL,没有任何GET参数)发出AJAX GET请求。
相关文章:
- 使用html表单中的参数调用JavaScript函数
- HTML页面如何提取通过表单传递的参数
- 如何在submit to sightly时将表单输入值作为参数传递给WCMUsePojo
- 在带有参数列表的表单submit上调用一个方法
- 如何使用angularjs服务将表单参数传递给Rest
- 如何使用JQueryUI滑块控制web音频API振荡器参数,而无需经过HTML表单参数
- 使用提交按钮参数自动提交表单
- 表单's自定义“;“多参数”;验证器并不总是启动
- 提交前筛选表单参数
- Rails3Ajax表单不发送参数
- 当表单控件选项具有多个参数时,如何在组合框中填充所选项目
- 将java脚本变量传递给相同的表单操作php文件参数
- 如何重用 ajax 表单加载函数打开多个选项卡,每个选项卡具有不同的参数
- jQuery:$.ajax() 重定向到其 URL 表单操作参数,而不是对表单操作执行 AJAX 请求
- 我的表单没有将参数存储在模型中
- 在表单提交时使用 URL 发送路由参数
- 在输入 HTML 表单上从 Java 脚本传递参数
- 使用 Ajax 发送的表单包含多参数和 A href
- 在 Sails.js 中重新排序文件上传的表单参数
- jQuery:从参数字符串设置表单状态