2017-02-20 24 views
0

私はMVC 5アプリケーションを開発しています。

私はParent Viewを持っており、Partial Viewを呼び出して画像を変更しています。

はここ

$('formPhoto').submit(function(event) { 
    event.preventDefault(); 
    if ($(this).valid()) { 
     var formdata = new FormData($(this).get(0)); 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: formdata, 
      processData: false, 
      contentType: false, 
      beforeSend: function() { 
       alert(1); 
      }, 
      success: function(result) { 
       successPhoto(result); 
      }, 
      complete: function() { 
       // alert(3); 
       // And so on. 
      } 
     }); 
    } 
    return false; 
}); 

私の部分図は、私のフォームは "FormPhoto" と呼ばれるこの

My Partial View looks like this

のように見えます...パーシャルビューに私の呼び出しです。 このようにSubmitにAjax関数を定義しました。

$('formPhoto').submit(function(event) { 
    event.preventDefault(); 
    if ($(this).valid()) { 
     var formdata = new FormData($(this).get(0)); 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: formdata, 
      processData: false, 
      contentType: false, 
      beforeSend: function() { 
       alert(1); 
      }, 
      success: function(result) { 
       successPhoto(result); 
      }, 
      complete: function() { 
       // alert(3); 
       // And so on. 
      } 
     }); 
    } 
    return false; 
}); 

この機能は送信時には実行されません。

私には何が欠けていますか?

また、私は

するvar FORMDATA =新しいいるFormData($(この)に.get(0))を使用して、部分図データを取得しよう。

しかし、私は間違っていると思います。

アイデア?

Tahnks?

+0

画像としてコードを投稿しないでください。とにかく実行されないコードにスニペットを使用しないでください。単にコードを表示するために4つのスペースでインデントします。また、基本的なトラブルシューティング'alert()'をコードに入れて、まったく呼び出されていることを確認してください。使用しているもののドキュメントを再読み込みします(jQueryなど)。 –

答えて

2

あなたはselector jqueryのIDを使用する必要があります。

$('#formPhoto') 

代わり

$('formPhoto') 

また、私はここでvar formdata = new FormData($(this).get(0));

を使用して部分図データを取得しようあなたが作成する詳細formを含むFormDataオブジェクトです。

var formdata = new FormData($(this)[0]); - FormDataに自動的にフォーム要素が送信され、変数FormDataに手動でデータを追加する必要はありません。ここ

は一例であり:

$('button').click(function(){ 
 
    var formData=new FormData($('#myForm').get(0)); 
 
    console.log(formData.get('input1')); 
 
    console.log(formData.get('input2')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="myForm"> 
 
    <input type="text" value="test" name="input1"/> 
 
    <input type="text2" value="test2" name="input2"/> 
 
    <button type="submit">Save</button> 
 
</form>

関連する問題