2017-02-14 16 views
0

目前我有一個$(窗口).unload函數在離開頁面時執行一些任務。但我只有在未提交表單時才需要執行這些操作。這是我迄今爲止所做的工作#如何檢查表單被提交或其他鏈接在jquery中單擊?

$(window).unload(function() { 
    var flag=0; 
     $("#id-message-form").submit(function(){ 
      flag=1; 
     }); 
     if(flag!=1){ 
      $.ajax({ 
       url: "app/ajax_handler.php", 
       type: 'GET', 
       async: false, 
       data:{}, 
       beforeSend: function() { 

       }, 
       complete: function() { 

       },  
       success: function(data) { 

       } 
      }); 
    } 
});` 

回答

1

當表單提交您可以設置一個標誌 - 然後檢查您卸載功能。

// Set this globally 
var formSubmit = false; 

$('form').on('submit', function() { 
    formSubmit = true; 
} 

然後在你的窗口中卸載函數;

if(!formSubmit) { 
    // your code that submits the form 
} 
0

submit()將無論默認情況下提交表格。您應該嘗試使用click()函數來存儲標誌值。

1

該問題是由於flag變量和submit處理程序的範圍所致。將它們放置在unload處理程序之外。我還建議將flag更改爲布爾值。

var formSubmitted = false; 

$("#id-message-form").submit(function() { 
    formSubmitted = true; 
}); 

$(window).unload(function() { 
    if (!formSubmitted) { 
    $.ajax({ 
     url: "app/ajax_handler.php", 
     type: 'GET', 
     data: {}, 
     async: false, 
     beforeSend: function() {}, 
     complete: function() {}, 
     success: function(data) {} 
    }); 
    } 
}); 
相關問題