2017-02-20 36 views
0

我正在開發一個MVC 5應用程序。

我有一個Parent View調用Partial View來更改de圖片。

這裏是我的電話,以局部視圖...

$('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; 
}); 

我的局部視圖看起來像這樣

My Partial View looks like this

我的形式被稱爲 「FormPhoto」。 我這樣定義了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得到局部視圖數據($(本)獲得(0));

但我認爲這是不正確的。

任何想法?

Tahnks?

+0

決不郵編作爲圖像。不要使用代碼片斷,而代碼不會運行;簡單地縮進4個空格來顯示代碼。另外:基本故障排除。把'alert()'放在你的代碼中,以確保它被調用。重新閱讀你正在使用的東西(如jQuery)的文檔。 –

回答

2

你必須使用一個jquery IDselector

$('#formPhoto') 

代替

$('formPhoto') 

而且,我嘗試使用var formdata = new FormData($(this).get(0));

這裏得到管窺數據你創建一個FormData對象其中包含form的詳細信息。

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>