定时设置按钮可用性,防止不间断提交

如有不明白的地方欢迎加QQ群14670545 探讨

18位长度的计时周期数: DateTime.Now.Ticks.ToString()

<script type="text/javascript">
//$j = jQuery.noConflict();
var time_begin = new Date();
var settime=3;
var i;
var showthis;
$(document).ready(function() {
    for(i=1;i<=settime;i++) {
        setTimeout("update("+i+")",i*1000);
    }
});

function update(num) {
    if(num==settime) {
        $("#next_button").attr("disabled",false);
        $("#surplus_time").text("");
    }
    else {
        showthis=settime-num;
        $("#surplus_time").text(showthis);
        $("#next_button").attr("disabled",true);
    }
}
</script>

下面来一个具体的例子:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="pattern_memo.aspx.cs" Inherits="MyWebSiteTest.DesignPatterns.pattern_memo" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>测试</title>
    <script src="../Js/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        //$j = jQuery.noConflict();  
        var time_begin = new Date();
        var settime = 4;
        var i;
        var showthis;
        $(document).ready(function () {
            $("#next_button").attr("disabled", true);
            for (i = 1; i <= settime; i++) {
                setTimeout("update(" + i + ")", i * 1000);
            }
        });

        function update(num) {
            if (num == settime) {
                $("#next_button").attr("disabled", false);
                $("#surplus_time").text("");
            }
            else {
                showthis = settime - num;
                $("#surplus_time").text(showthis);
                $("#next_button").attr("disabled", true);
            }
        }  
</script>  
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <span id="surplus_time"></span><br />
        name:<asp:TextBox runat="server" ID="txtname" /><br />
         pwd:<asp:TextBox runat="server" ID="txtpwd" /><br />
        <asp:Button runat="server" ID="next_button" Text="提交" OnClientClick="return checkinput();" οnclick="next_button_Click" />
    </div>
    </form>
    <script type="text/javascript">
        function checkinput() {
            var _name = document.getElementById("txtname");
            var _pwd = document.getElementById("txtpwd");
            if ($.trim(_name.value) == "") {
                $("#surplus_time").text("please write your name");
                _name.focus();
                return false;
            }
            if ($.trim(_pwd.value) == "") {
                $("#surplus_time").text("please write your pwd");
                _pwd.focus();
                return false;
            }

            return true;
        }
    </script>
</body>
</html>
public partial class pattern_memo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void next_button_Click(object sender, EventArgs e)
        {

        }
    }
注意了,在页面的ready之后一定要加上一句

$("#next_button").attr("disabled", true);
否则会有简短的一秒左右button按钮是可用状态的,而如果你直接在button按钮上面添加Enabled(disabled)属性,则OnClientClick方法将不会奏效。

看看效果比较:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.关闭当前浏览页面:onClientClick="window.close()" 2.网页中添加计时器:(考试系统) <head runat="server"> <title></title> <script language="javascript"> var hour = 2 var minute = 0 var second = 0 function clockShow() { second = second - 1; if (second < 0) { second = 59; minute = minute - 1; } if (minute < 0) { minute = 59; hour = hour - 1; } if (second == 1) { document.form1.submit() } document.myform.myclock.value = hour + ":" + minute + ":" + second; var myTime = setTimeout("clockShow()", 1000); } </script> <style type="text/css"> #div11 { height: 40px; } </style> </head> <body onLoad="clockShow()"> <div id="div11" style="background-color: #C7BFCE; position: absolute; z-index: 1; width: 19%; height: 35px; top: 60px; right: 101px;"> <form NAME="myform" style="width: 240px; margin-left: 0px"> 计时器 <INPUT type="text" name="myclock" readonly="readonly" style="border-width: inherit; margin-left: 12px; background-color: #C7BFCE; width: 127px;" >  </form> <form name="form1" method="post" action="http://www.baidu.com">   </form> </div> </body> </html> 3.。、、、、、、、、、、、、、、、、 <input type= "button " id= "agree " value= "等待时间为 " onclick= " "> <BR> </BODY> </HTML> <script type= "text/javascript "> var settime=300; var i; var showthis; document.all.agree.disabled=true; for(i=1;i <=settime;i++) { setTimeout( "update( "+i+ ") ",i*1000); } function update(num) { if(num==settime) { document.all.agree.value= "0 "; document.all.agree.disabled=false; } else { showthis=settime-num; document.all.agree.value= "等待时间为 ( "+showthis+ ")秒 "; } } </script>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值