ajax 防止用户反复提交

可在服务器端加载方法:
private void OnLoading()
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append(" function pageLoad(){var manager = Sys.WebForms.PageRequestManager.getInstance(); ");
        sb.Append(" manager.add_beginRequest(OnBeginRequest); manager.add_endRequest(OnEndRequest)} var lcPostbackElementID;");
        sb.Append(" function OnBeginRequest(sender, args){ lcPostbackElementID = args.get_postBackElement().id.toLowerCase(); if (lcPostbackElementID === \"btnadwords\"){$get(\"btnAdWords\").disabled = true; $get(\"btnAdWords\").value='正在提交...';}} ");
        sb.Append(" function OnEndRequest(sender, args){if (lcPostbackElementID === \"btnadwords\"){ $get(\"btnAdWords\").disabled = false; $get(\"btnAdWords\").value='确定';}}    ");

        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "btnAdWords", sb.ToString(), true);
    }

也可直接写在页面脚本里:
<script>
function pageLoad()
{
    var manager = Sys.WebForms.PageRequestManager.getInstance();
    manager.add_beginRequest(OnBeginRequest);
    manager.add_endRequest(OnEndRequest)
}
var lcPostbackElementID;
function OnBeginRequest(sender, args)
{
    lcPostbackElementID = args.get_postBackElement().id.toLowerCase();
    if (lcPostbackElementID === 'btnadwords')
    {
        $get('btnAdWords').disabled = true;
        $get('btnAdWords').value='正在提交...';
    }
}
function OnEndRequest(sender, args)
{
    if (lcPostbackElementID === \"btnadwords\")
    {
         $get('btnAdWords').disabled = false;
         $get('btnAdWords').value='确定';
    }
}
</script>

更多内容请参考:http://msdn.microsoft.com/zh-cn/magazine/cc163319.aspx

posted on 2009-03-05 15:19  草原和大树  阅读(831)  评论(0编辑  收藏  举报