我有一个用AJAX触发的HTML表单,使用Rails后端提交。但是,在第一次提交后,表单停止提交。通过阅读其他帖子,我意识到部分问题是该问题与包含$(文档)而不是JQUERY调用中的表单提交处理程序有关,而是将其更改为类似$('。new_todo form')的内容。将页面作为JSON对象返回,而不仅仅是我在Jquery中使用$(document)获得的实例化对象{}响应。
我实际上是在尝试创建一个对象,然后继续将它附加到索引页面,该索引页面适用于第一次提交,但正如后面提到的那样。
我真的很感激任何见解,因为我已经盯着这几个小时,虽然大量的答案解决了类似的挑战(解除绑定等),但我发现没有成功解决这个用例。
当前的AJAX调用是:
$(document).on('submit', '.new_todo', (e) => {
e.preventDefault()
$.ajax({
type: "POST",
url: "/todos",
data: {
'authenticity_token': $("input[name='authenticity_token']").val(),
'todo': {
'name': $("#todo_name").val()
}
},
success: function(response) {
$("#todo_name").val("")
$("#todo_location").html("")
$("#todo_date").html("")
let newTodo = new Todo(response)
let todoHtml = newTodo.formatIndex()
$('.todo-list').append(todoHtml)
}
})
})
我创建的控制器操作是:
def create
@todo = Todo.new(todo_params)
@todo.save
render json: @todo
end
谢谢!