[英]jQuery: ajax call not executed on form submit event unless I have a alert call after it?
我正在對Web應用程序上的現有表單進行一些修改。 我無權訪問表單的代碼,但是可以向頁面添加腳本,因此我在jQuery的幫助下進行了一些自定義。
所以,現在我有這樣的事情:
jQuery( "#new_user" ).submit(function( event ) {
event.preventDefault();
var fullname = jQuery("#user_name").val();
var email = jQuery("#email_primary").val();
var company = jQuery("#contact_customer").val();
jQuery.ajax({
async: false,
dataType: 'jsonp',
url:"https://server.com/script.php",
data: {"fullname": fullname, "email": email, "company": company},
success: function(response){
alert("json says " +response.res);
}
});
alert("hello");
});
現在,這很好。 我基本上是在攔截表單提交。
問題是, 只有在我將alert()調用保留在其中的情況下才執行ajax調用 ,這顯然是我不想要的,它只是用於調試。 如果我刪除alert()調用,則將提交表單,但ajax調用將無法正常工作。 我可以訪問應該接收JSONP請求的Web服務器,但是它甚至沒有到達那里。
第二個警報實際上從未執行,但實際上我在那里不需要任何東西,我只需要在Web服務器上接收GET。
我試圖將async:false添加到ajax()選項,但是沒有運氣。
我有點困惑,並且對此進行了很多研究/實驗。 任何提示表示贊賞,在此先感謝。
您必須阻止表單提交,否則ajax請求將被取消
jQuery( "#new_user" ).submit(function( event ) {
event.preventDefault()
jQuery.ajax(...);
alert("hello");
});
而且您想提交有關ajax成功的表格,對嗎?
jQuery( "#new_user" ).submit(function( event ) {
event.preventDefault()
var self = jQuery(this);
jQuery.ajax({
async: false,
dataType: 'jsonp',
url:"https://server.com/script.php",
data: {"fullname": fullname, "email": email, "company": company},
success: function(response){
alert("json says " +response.res);
self.submit();
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.