我正在使用 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/