jquery - Rails ajax 检测表单参数

标签 jquery ajax ruby-on-rails-4

我正在使用 ajax 提交带有两个按钮的表单。然后,我使用 Controller 中的 params[:commit] 检测按下了哪个按钮。我还使用 jQuery 的 AjaxComplete 函数在前端进行一些操作。我的问题是如何在 jquery 的 Ajax Complete 函数中访问提交按钮的值,以便我可以在不通过 Controller 的情况下知道按下了哪个按钮?

例如,我已经在做类似的事情,我检查 url 以查看发送了哪个 ajax 请求,然后执行一些操作,现在我想更深入地研究并查看发送了哪些参数ajax请求(代码是coffescript)

 $(document).ajaxComplete (event, xhr, settings) ->
    if settings.url.indexOf('mode=2') > 0
      $('#nav_tabs').show();

最佳答案

查看有关传递到 ajaxComplete 处理程序的 settings 参数的文档。 根据您的 jQuery 版本,您也许能够直接访问 settings.data POJO。如果你不能,你可以通过使用 settings.url 来获得你想要的结果。

例如,假设您正在对 http://www.google.com 执行 GET与data对象{herp: "derp", karp: "larp"}。此数据将作为查询参数附加到 URL。让我们来搞乱它吧!

// load the URL of the request
var u = new URL(settings.url);
var params = u.search.replace("?", "").split("&").map(
    function(currVal) {
        var parts = currVal.split("=");
        var resp = {};
        resp[parts[0]] = parts[1];
        return resp;
});
// params now contains an array of { key: value } mappings for the request params.
// now, lets merge them!
var merged_params = {};
for (var i : params) {
    merged_params[i] = params[i];
}
// now merged_params is a POJO with the original keys&values of the data sent to the server.

关于jquery - Rails ajax 检测表单参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326324/

相关文章:

ruby-on-rails - AngularJS HTTP 调用需要两分钟,而 Rails 操作只需要 20 秒,我该如何调试呢?

ruby-on-rails - Rails 4 - 如何从他们的 id 中获取用户名

jquery - 创建自定义文件输入

javascript - 在单个 PHP 文件上处理多个 ajax

asp.net - 在 ASP.NET MVC 后的 ajax 中包含 antiforgerytoken

javascript - 将 JSON 从 Rails Controller 加载到 javascript 文件中的 d3 .defer() 函数

javascript - 如何在此代码上实现 jQuery cookie

javascript - 单击遍历无序列表javascript

javascript - 取消粘附在屏幕底部的 div

javascript - 在 JavaScript 中确定选择器的范围?