从输入元素获取表单和 FormData 对象?

use*_*034 2 html javascript forms ajax jquery

所以我想在每次点击表单“提交”输入时触发一个 Javascript 函数,这样我就可以在 Javascript 中处理提交。

我有以下几点:

$(':submit').click(function(){
    var currentForm = $(this)[0].form;
    event.preventDefault(); //Stop default form submission
    var formData = new FormData(currentForm);

    $.ajax({/*Handle form submission here*/});
});
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的变体来获取 currentForm,但由于某种原因它总是未定义?

这不是获取form对象然后FormData在 Javascript 中将其转换为对象的正确方法吗?我已经尝试了几种关于如何获取输入的表单父级的解决方案,但都没有工作。

有任何想法吗?

jmo*_*009 5

你需要通过event

$(':submit').click(function(event){
   var currentForm = $('form')[0];
   event.preventDefault(); //Stop default form submission
   var formData = new FormData(currentForm);

   $.ajax({/*Handle form submission here*/});
});
Run Code Online (Sandbox Code Playgroud)

更新

所以它似乎$('form')返回一个 jQuery 对象,但需要传递一个 HTML 元素来实现FormData. [0]。这与调用相同$('form').get(0)。所以用$('form')[0]