2015-11-11 45 views
1

我使用了一個教程來獲取以下ajax代碼。在教程中,他們有圖書館jquery.form.js。以下是代碼:沒有庫的等效代碼

function onsuccess(response,status){ 
    $("#onsuccessmsg").html(response); 
     alert(response); 
    } 
    $("#uploadform").on('change',function(){ 
     var options={ 
     url  : $(this).attr("action"), 
     success : onsuccess 
    }; 
    $(this).ajaxSubmit(options); 
     return false; 
}); 

如果我不想讓jquery.form.js實施,該怎麼辦?與普通的ajax(沒有庫)等價的代碼是什麼?

更新

我嘗試下面的代碼:

$("#uploadform").on('change',function(){ 
       $.ajax({ 
        url: $(this).attr("action"), 
        context: document.body, 
        success: function(){ 
         $("#onsuccessmsg").html(response); 
         alert("asdf"); 
        } 
       }); 
       return false; 
      }); 

,並沒有現在做任何事情。

+0

jquery.form.js庫非常有用。我會建議從開始使用它,因爲您可能最終會在您的項目中使用它。 –

+0

謝謝,但現在,我不想使用它。你知道相當於ajax代碼嗎? – Horay

回答

1

這將是更多的東西,如:(道歉的格式,我對我的手機)

  $("#uploadform").on('submit',function(e){ 
       e. preventDefault() ; 
       var formData = new FormData($(this)[0]); 

       $.ajax({ 
        url: $(this).attr("action"), 
        context: document.body, 
        data: formData, 
        type: "POST", 
        contentType: false, 
        processData: false, 
        success: function(response, status, jqxhr){ 
         $("#onsuccessmsg").html(response); 
         alert("asdf"); 
        } 
       }); 
       return false; 
      }); 

數據的VAR將需要手動,您可以通過表單字段運行建立起來。你可能還想看看jquery post,這是寫上述的簡寫方式。


您可以使用此之前回答問題來獲取你需要在傳遞到AJAX數據字段的表單數據:

How can I get form data with Javascript/jQuery?

另外值得一提的是,如果你要發送一個文件從您的表單,您的表格必須有enctype="multipart/form-data"。 使用ajax提交表單時,您需要設置contentType: false, processData: falseSee this post for reference

我已更新上面的代碼片段以反映此情況。

如果這已回答您的問題,請將其標記爲正確答案。

+0

非常感謝!我在這個問題中使用PHP文件:http://stackoverflow.com/questions/33640571/upload-image-to-imgur-using-ajax如何填寫「數據」? – Horay

+0

這就是你需要單獨發佈的另一個問題。如果此解決方案異步發佈表單,請接受答案。謝謝。 –

+0

好的。謝謝!還有1個問題。在我發佈的代碼中,在onsuccess函數中有兩個參數。 'function onsuccess(response,status){...'我怎樣才能得到這些? – Horay