2015-11-16 57 views
0

我正在使用JQuery验证插件。正如我发现的那样,我无法在IE8/IE9上使用FileData。问题是,由于我无法控制的一些原因,我也不能使用Flash的IFrame来处理我的文件。文件上传 - 处理IE8/IE9

此刻,我submitHandler就像下面

submitHandler: function (form) { 
    if(window.FormData === undefined) { 
     alert("UNDEFINED"); 
    } else { 
     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; 
    } 
}, 

所以,它的工作原理是正常的,但如果它不支持FORMDATA,此刻我有它提醒未定义。然而,我需要做的是在其他表单字段上进行验证,因为这似乎适用于IE8,但忽略与上载文件有关的任何操作。那么我怎样才能调用我的PHP脚本IE8/IE9?

任何意见赞赏。

感谢

回答

0

排除文件验证,如果FORMDATA对象不存在

if (typeof formData == "undefined") { 
    //don't do file validation 
} 
+0

然后,我只是触发提交?此外,是否有可能在这里做正常的验证,并仍然在PHP中获取文件?当我尝试时,正常的验证工作,但文件不传递给PHP。 –

+0

你最好只在 madalinivascu

+0

对不起,你的意思是? –