2013-04-02 9 views
5

IEでこの作業を行うにはどうすればよいですか? これはIEでは動作しません。新しいFormData()apiはIEのブラウザではサポートされていません。IEの新しいFormData()に相当するAPIはありますか?IEのブラウザで新しいFormData()を作成する方法

var fd = new FormData(); 
fd.append("userfile", $("#userfile")[0].files[0]); 

$.ajax({ 
    url : '/user/ajax_upload/', 
    type: 'POST', 
    contentType:false, 
    cache: false, 
    data: fd, 
    processData: false, 
    beforeSend :function(){ 
    }, 
    success : function(data) { 
     $('#popupbox').html(data); 
    } 
}); 
+0

これが役立ちます:: http://stackoverflow.com/questions/10852446/fallback-for-formdata-in-ie-8-9 –

答えて

5

その優れたAJAXの上に画像を送信するためのjqueryのフォームのJsを使用する:あなたは、しかし、jQueryのようにのようにシリアライズを使用することができます。私はそれが

<script type="text/javascript" src="/js/jquery.form.js"></script> 

function update_professional_details(){ 
    var options = { 
       url  : '/validateform/personal', 
       type : $("#personal_edit_form").attr('method'), 
       dataType: 'json', 
       success:function(data) { 
        var msg = data.msg; 
        if(data.status == 'success'){ 
         $("#msg_data").html("Updated successfully, redirecting...") 
         $("#personal_edit_form").submit(); 
        }else{ 
         $('p[class$="_error2"]').html(''); 
         var msg = data.msg; 
         $.each(msg, function(k, v) { 
          $('.'+k+'_error2').html(v); 
         }); 
        } 
       }, 
      }; 
      $('#personal_edit_form').ajaxSubmit(options); 
       return false; 
     } 

    $('#updatepersonal').click(function(){ 
     update_professional_details(); 
      return false; 
    }); 
+2

あなたは_foundそれをより詳しく説明できますか? –

+0

スマートマネーは、「この方法が働いた、他の方法はしなかった、私はなぜ知っていないのですか? – katzenhut

-3

どうやら、いるFormDataは、IEでサポートされていません。 私はソースとしてそれを実装する際に使用していること。

 var FD = $('form').serialize(); 
4

よりも良いFormData()実際に私は私のコードへの変更が他のすべてのブラウザで$アヤックスを使用することができるようになって、ちょうどこのようなIEブラウザ用のiframeを作りました。

mailer.php

<!--[if IE]> 
    <iframe src="form.php"></iframe> 
<![endif]--> 

<![if !IE]> 
<script> 
    $(document).ready(function() { 
     //Program a custom submit function for the form 
     $("#form").submit(function(event){ 

      //disable the default form submission 
      event.preventDefault(); 

      //grab all form data 
      var formData = new FormData($(this)[0]); 

      $.ajax({ 
      url: $("#form").attr('action'), 
      type: 'POST', 
      data: formData, 
      async: false, 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function (returndata) { 
       alert(returndata); 
      } 
      }); 

      return false; 
     }); 
    }); 
</script> 

<?php include_once ('form.php'); ?> 

<div id="email-success"></div> 
<![endif]> 

form.php

<form id="form" action="form-exec.php" target="_self" method="post" enctype="multipart/form-data"> 
    <input type="text" name="email-to" value="" /> 
    <input type="text" name="email-subject" value="" /> 
    <input type="text" name="email-message" value="" /> 
    <input type="file" name="file" /> 
    <input type="file" name="file2" /> 
    <button type="submit" name="email-send">Skicka</button> 
</form> 

とフォームexec.phpで、私の場合、私のphpmailerの送信者!

関連する問題