我有按钮
<UpdatePanel>
<asp:Button CssClass="btn-send" runat="server"
OnClick="SendMessage" Text="Send" />
</UpdatePanel>
服务器端方法
protected void SendMessage(object sender, EventArgs e){...}
我需要稍微延迟并在POST之前显示进度条动画。我想为此使用javascript(jquery)。
如何延迟提交
1)没有服务器延迟
2)没有带客户端脚本的第二个按钮,单击服务器按钮?
答案 0 :(得分:1)
您可以在没有jQuery的情况下执行此操作,只需使用常规Javascript setTimeout即可。
答案 1 :(得分:1)
你可以试试这样的......
<asp:Button runat="server" OnClick="SendMessage" Text="Send"
OnClientClick="return sendMessage(this);" />
<script type="text/javascript">
var sendBtn = null;
function sendMessage(btn){
if(sendBtn==null){
sendBtn = btn;
window.setTimeout(function(){ sendBtn.click(); }, 1000);
// DO YOUR VISUAL STUFF HERE
return false;
}else{
return true;
}
}
</script>
想法是点击按钮首先存储按钮对象,设置超时以单击按钮,然后执行您想要做的视觉效果。
然后在一秒钟后,再次单击该按钮(这次没有执行超时部分)
(我还没有时间学习jquery,但我确信有更简单的方法可以用它来学习)
答案 2 :(得分:0)
您可以捕获表单的onsubmit
,然后当您提交(按下按钮)时,打开页面的等待消息。所以你在Page_Load()
Page.Form.Attributes["onsubmit"] = "return AllowFormToRun();";
和javascript:
<script>
function AllowFormToRun()
{
setTimeout(OpenWaitMsg, 10);
return true;
}
function OpenWaitMsg()
{
// open here the wait div
}
</script>
答案 3 :(得分:0)
您应该在提交按钮上单击Event.preventDefault()
以防止页面在点击时提交。然后开始你的进度动画,当它完成时,从js调用你的表单提交。
$("form").submit(function(e){
var form = this;
e.preventDefault();
function animation(total,callback){
//perform your animation
callback();
};
animation(100,function(){
form.submit();
});
});