我有一个包含大量输入的表单,包括两个文件上传字段。我有一切与FormData合作,但我已经意识到这一点 这在IE8或IE9中不起作用(我也需要它)。因此,我可能会切换并使用JQuery Form插件。
我不会显示html表单,因为它是很多代码,但它只是一个包含很多字段的简单表单。我首先做的是使用JQuery Validate插件进行一些验证。如下所示,所有FormData内容都在submitHandler中完成。
$(function () {
var validator = $("#my-form").validate({
errorContainer: "#validation-results",
errorLabelContainer: "#validation-results",
errorElement: "li",
groups: {
fileGroup: "fileOne fileTwo"
},
rules: {
//All the appropriate rules
},
messages: {
//All the appropriate messages
},
submitHandler: function (form) {
formData = new FormData(),
params = $(form).serializeArray(),
fileOne = $(form).find('[name="fileOne"]')[0].files,
fileTwo = $(form).find('[name="fileTwo"]')[0].files;
if(fileOne.length != 0) {
$.each(fileOne, function(i, file) {
formData.append('fileOne-' + i, file);
});
}
if(fileTwo.length != 0) {
$.each(fileTwo, function(i, file) {
formData.append('fileTwo-' + i, file);
});
}
$.each(params, function(i, val) {
formData.append(val.name, val.value);
});
$.ajax({
type: "POST",
url: "php/process.php",
dataType: "json",
data: formData,
mimeType: "multipart/form-data",
contentType: false,
processData: false
}).done(function (response) {
});
return false;
}
});
});
我的主要问题是如何将JQuery Form Plugin与上面的JQuery Validate代码集成?我假设我使用上面的submitHandler,但它只是添加以下内容的情况 复制我目前在submitHandler中的内容?
$("#my-form").ajaxSubmit();
return false;
关于如何将两者结合起来的任何建议都会很棒。我的主要目标是在IE中正常运行。
非常感谢