2013-02-12 71 views
0

我想在刷新更新面板之前運行jQuery函數。由於這種刷新可以通過許多按鈕和其他方式來完成,我希望使用提交處理程序或類似的東西,但它不起作用。如何在更新面板更新之前執行javascript函數

我想這事件附加到主要形式有:

jQuery('form').submit(function() { alert('submit!'); }); 

而且這個附加到更新面板

jQuery('#pnlContent').submit(function() { alert('submit!'); }); 

任何人知道如何做到這一點?

+0

'UpdatePanel'表單在正常意義上不是「提交」。它通過ajax「提交」,所以這些事件不會觸發。 – Chad 2013-02-12 14:22:38

+0

@查德,我可以用什麼來代替? – 2013-02-12 14:34:23

回答

3

這爲我工作。有想法here。基本上,你定義了一個在更新之前運行的函數,以及之後運行的函數。然後您註冊這些函數以與頁面請求管理器一起運行。

<script type="text/javascript"> 
    /* Put your code to run before UpdatePanel begins async postback here */ 
    function beforeAsyncPostBack() { 
     var curtime = new Date(); 
     alert('Time before PostBack: ' + curtime);   
    } 

    /* Put your code to run after UpdatePanel finishes async postback here */ 
    function afterAsyncPostBack() { 
     var curtime = new Date();   
     alert('Time after PostBack: ' + curtime); 
    } 

    /* Don't mess with any of the below code */ 
    Sys.Application.add_init(appl_init); 

    function appl_init() { 
     var pgRegMgr = Sys.WebForms.PageRequestManager.getInstance(); 
     pgRegMgr.add_beginRequest(beforeAsyncPostBack); 
     pgRegMgr.add_endRequest(afterAsyncPostBack); 
    }  
</script> 
0

您可以使用onsubmit =「return check();」通知。它會在提交表單之前檢查這個函數。

function check(){ 
    // do javascript code 
    // after check your javascript 
    document.getElementById("frm1").submit(); 
} 

HTML:

<form id="frm1" action="#" onsubmit="return check();"> 
    First name: <input type="text" name="fname"><br> 
    Last name: <input type="text" name="lname"><br> 
    <input type="submit" name="submit" value="Submit form"> 
</form> 
0
function PageLoad() 
{ 
    if (!window.Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) 
    { 
     window.Sys.WebForms.PageRequestManager.getInstance().add_endRequest(AjaxEnd); 
     window.Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(AjaxBegin); 
    } 
} 

function AjaxEnd() 
{ 
    alert("AjaxEnd"); 
} 

function AjaxBegin() 
{ 
    alert("AjaxBegin"); 
} 
相關問題