我想在更新面板被激活之前运行jQuery函数以进行刷新。由于这个刷新可以通过许多按钮和其他方式中的任何一个来完成,我希望使用提交处理程序或类似的东西,但它不起作用。
我尝试将此事件附加到主表单:
jQuery('form').submit(function () { alert('submit!'); });
并将此附加到更新面板
jQuery('#pnlContent').submit(function () { alert('submit!'); });
任何人都知道如何做到这一点?
答案 0 :(得分: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>
答案 1 :(得分: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>
答案 2 :(得分: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");
}