ruby-on-rails - Rails 在 ajax 上嵌套 Ajax 表单:仅发送顶级表单
问题描述
我有一个 ajax 表单,它有一个远程真正的 link_to 和一个嵌套的远程表单,它会导致其他操作。
我需要使用监听器在顶级表单上执行一些操作:
$(document).on('ajax:send', 'form[data-remote=true]', function (event) {
event.stopPropagation();
var $form = $(this);
...
$form.unbind("ajax:success").on('ajax:success', function (data) {
// do something
}).on('ajax:complete', function () {
// do something else
});
});
问题是无论我做什么,嵌套的 link_to 和嵌套的表单都会触发这个监听器。
遗憾的是,我最终偏离了 Rails 标准,这不是我的问题所在,只是你如何告诉on('ajax:send)
函数只有在表单是最上面的时候才能工作?我在想也许可以从 ajax:send 返回的数据中获取 URL
$(document).on('ajax:send', 'form[data-remote=true]', function (event) {
[data, status, xhr] = event.detail
...
但这感觉就像一场噩梦。有什么建议么?
解决方案
推荐阅读
- c# - C# 什么时候得到 Action<..> 参数的这种“类似 SFINAE”的重载解析,它叫什么?
- python - 尝试嵌套函数
- angular9 - 如何从已部署站点的角度从 url 中删除 #
- ruby-on-rails - 在创建时使用来自子记录的信息更新 rails 父记录
- javascript - TypeError: Object(...) is not a function (React)
- git - Visual Studio 2019 可以连接到不在 azure devops 中的 git 存储库吗
- python - Subprocess.Popen 打开一个 .exe 终端程序并输入到程序中
- ios - 如何在代码中删除xib的视图约束?
- r - R - 仅提取特定行后的第一个数字
- web - 使用 PIXI JS 捕获屏幕截图时导致此问题的原因