Jquery 表单提交不能使用 AJAX 和 Rails 莫名其妙地重新渲染 index.html.erb

我在 jquery/ajax html 更新表单上遇到了最奇怪的问题。

我的应用程序是使用 Rails 控制器的单页 TODO 应用程序,但所有 DOM 更改都通过 Jquery/Ajax 进行。通过 Javascript 将 TODO 呈现到页面后,每个 TODO 都有一个编辑按钮。

单击编辑按钮时,会发出 API 请求,导致将更新表单附加到 DOM。

但是,当单击该表单中的更新按钮时,Jquery 无法识别它,并且出于某种未知原因,Rails 每次都会重新呈现 Index.html.erb 页面。我已经为选择器尝试了 10 种不同的解决方案,但没有任何效果。

选择将编辑表单附加到 DOM 的方法在这里:

  $(document).on("click", ".ugh3", function(e) {
      e.preventDefault()
  let id = e.target.id
  let event = e
  $.ajax({
    type: "GET",
    url: `/todos/${id}`,
    success: function(response) {
        let newTodo = new Todo(response)
        let todoHtml = newTodo.formatEdit()
        $('.todo-list').append(todoHtml)
    }
  })
 })

上面的调用完美无缺。但是当我尝试让表单提交或点击工作时,它永远不会识别它并且 Index.html.erb 页面被重新提交。我已经尝试过 preventDefault 并返回 false ,如下所示:

  $("form.edit_todo").on("submit", function (e) {
   debugger
   e.preventDefault();
   return false;
  })

如果有人有几分钟的时间来看看这个,我将不胜感激。这已经让我疯狂了两天了。非常感谢!

git repo 是:https : //github.com/jwolfe890/todoapp/blob/master/app/assets/javascripts/todo.js

狂暴D

当您动态附加表单时,提交处理程序 - $("form.edit_todo").on("submit", ...- 不会触发,因为在绑定时该表单尚不存在于 DOM 中。

与您在.ugh3上使用的点击事件类似,您需要针对文档注册提交事件:

$(document).on('submit', 'form.edit_todo', function (e) { ... })

document是一个常数-它会一直存在,因此任何事件侦听器可以针对它的约束。当一个submit事件被触发时,它document会检测到它(事件冒泡的结果),jQuery 将获取目标元素(导致事件的元素)并将其与任何注册的处理程序(处理程序由您的$.on函数创建)进行比较。如果有匹配项,它将执行该处理程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails路由助手在请求之前莫名其妙地使用了“后安装”

来自分类Dev

yarn / npm在摩卡和打字稿中莫名其妙地使用了过时的代码

来自分类Dev

在Rails中index.html和index.html.erb有什么区别?

来自分类Dev

jQuery .empty() && .append() 莫名其妙地失败

来自分类Dev

Rails预编译index.html.erb

来自分类Dev

Ruby on Rails - 调用 html.erb 和 js.erb

来自分类Dev

使用jQuery和/或AJAX发布HTML表单

来自分类Dev

在erb文件中使用rails form_tag和html表单代码有什么区别?

来自分类Dev

使用Ajax更新ERB中的Rails变量

来自分类Dev

Rails / Ruby:TimeWithZone比较莫名其妙地失败了等效值

来自分类Dev

Rails路由助手莫名其妙地将“ postinstall”添加到请求中

来自分类Dev

Rails index.html.erb不显示image.png

来自分类Dev

Rails Ajax调用未将erb元素转换为html

来自分类Dev

Rails html.erb文件类型,<%%>和<%=%>之间的差异

来自分类Dev

使用HTML5,Ajax和jQuery发送表单

来自分类Dev

使用HTML5,Ajax和jQuery发送表单

来自分类Dev

数组和循环中输出的莫名其妙的变化

来自分类Dev

数组和循环中输出的莫名其妙的变化

来自分类Dev

使用jQuery在Rails中没有Ajax提交表单

来自分类Dev

使用ajax和jquery提交表单后,不要重新加载页面

来自分类Dev

Rails上的Ajax红宝石无法渲染js.erb

来自分类Dev

在HTML Rails中提交AJAX表单4

来自分类Dev

Rails JQuery和Ajax对我来说不能正常工作?

来自分类Dev

使用jQuery和Ajax提交表单以更改操作

来自分类Dev

使用JQuery和AJAX提交带有文件的表单

来自分类Dev

使用jQuery和Ajax通过POST提交表单

来自分类Dev

提交使用jQuery和AJAX动态插入页面的表单?

来自分类Dev

使用JQuery和AJAX提交带有文件的表单

来自分类Dev

使用jQuery和Ajax提交表单以更改操作

Related 相关文章

  1. 1

    Rails路由助手在请求之前莫名其妙地使用了“后安装”

  2. 2

    yarn / npm在摩卡和打字稿中莫名其妙地使用了过时的代码

  3. 3

    在Rails中index.html和index.html.erb有什么区别?

  4. 4

    jQuery .empty() && .append() 莫名其妙地失败

  5. 5

    Rails预编译index.html.erb

  6. 6

    Ruby on Rails - 调用 html.erb 和 js.erb

  7. 7

    使用jQuery和/或AJAX发布HTML表单

  8. 8

    在erb文件中使用rails form_tag和html表单代码有什么区别?

  9. 9

    使用Ajax更新ERB中的Rails变量

  10. 10

    Rails / Ruby:TimeWithZone比较莫名其妙地失败了等效值

  11. 11

    Rails路由助手莫名其妙地将“ postinstall”添加到请求中

  12. 12

    Rails index.html.erb不显示image.png

  13. 13

    Rails Ajax调用未将erb元素转换为html

  14. 14

    Rails html.erb文件类型,<%%>和<%=%>之间的差异

  15. 15

    使用HTML5,Ajax和jQuery发送表单

  16. 16

    使用HTML5,Ajax和jQuery发送表单

  17. 17

    数组和循环中输出的莫名其妙的变化

  18. 18

    数组和循环中输出的莫名其妙的变化

  19. 19

    使用jQuery在Rails中没有Ajax提交表单

  20. 20

    使用ajax和jquery提交表单后,不要重新加载页面

  21. 21

    Rails上的Ajax红宝石无法渲染js.erb

  22. 22

    在HTML Rails中提交AJAX表单4

  23. 23

    Rails JQuery和Ajax对我来说不能正常工作?

  24. 24

    使用jQuery和Ajax提交表单以更改操作

  25. 25

    使用JQuery和AJAX提交带有文件的表单

  26. 26

    使用jQuery和Ajax通过POST提交表单

  27. 27

    提交使用jQuery和AJAX动态插入页面的表单?

  28. 28

    使用JQuery和AJAX提交带有文件的表单

  29. 29

    使用jQuery和Ajax提交表单以更改操作

热门标签

归档