这里有数百个这样的问题,但我已经搜索和搜索,但我找不到我的问题的答案。我的目标是提交整个表单,包括其中的任何潜在文件。这是我的非功能代码:
$(target + " form.dialog").submit(function(){
var data = new FormData($(this));
$.ajax({
url: $(this).attr("action"),
type: "post",
data: data,
cache: false,
contentType: false,
processData: false,
success: function(data){
// Do stuff..
}
});
return false;
});
所以,基本上,我还没有找到使用 $(this) 作为 FormData() 类的参数的 jQuery 代码。根据规范,应该能够向类提交“表单元素”,并且我假设 $(this) 实际上并没有这样做。大多数示例如下所示:
var data = new FormData($('#myform')[0]);
但是我的实现处理在 jQuery dialog() 中加载的任何表单,它是通过 ajax 从服务器加载的 HTML,所以我无法事先知道表单必须专门针对它的 ID。
即使我这样称呼它:
var data = new FormData($(target + " form.dialog")[0]);
什么都没有发生,或者更确切地说,没有提交任何参数。这是 jQuery 版本问题吗?“目标”变量始终是“#dialog”形式的 ID,我是否需要以其他方式查找和检索表单元素?
当我这样做时:
console.log(typeof($(target + " form.dialog")[0]))
返回“对象”,我假设它是 FormData() 类的错误类型......感谢任何帮助。