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

Get form & FormData objects from input element?

所以我想在每次单击表单 'submit' 输入时触发 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*/});
});

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

这不是获取form对象然后在Javascript中将其转换为FormData对象的正确方法吗?我在 How to get the form parent of an input? 上尝试了几种解决方案,但都没有用。

有什么想法吗?

你需要通过 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*/});
});

更新

所以看起来 $('form') returns 一个 jQuery 对象,但是 HTML 元素需要传递给 FormData. [0] 确实那。和调用$('form').get(0)是一样的。所以使用 $('form')[0]