根据一天中的时间有条件地禁用提交按钮

时间:2018-06-04 15:55:48

标签: javascript asp.net

我正在建立一个世界杯预测赛游戏,我遇到了一个我以前从未使用过的元素。基本上我需要一个按钮来禁用,如果时间超过某一点 - 我不希望人们能够在比赛结束后提交/编辑预测。

有人能指出我正确的方向吗?我已经创建了一个非常基本的表单,如下所示。为了清楚起见,我需要知道如果客户端时间是在01/07/2018之后的15:00之后禁用按钮。

<html>
<head>
<title>Main Page</title>
</head>
<body>
<form action="engine.asp" method="post" name="form1" id="form1">
<table width="50%" border="0">
  <tr>
    <td width="50%">Team Name:</td>
    <td width="50%"><label>
      <input type="text" name="TeamName" id="TeamName" />
    </label></td>
  </tr>
  <tr>
    <td width="50%">Winner?:</td>
    <td width="50%"><label>
      <input type="text" name="WinningTeam" id="WinningTeam" />
    </label></td>
  </tr>
  <tr>
    <td width="50%">Total Goals?:</td>
    <td width="50%"><label>
      <input type="text" name="TotalGoals" id="TotalGoals" />
    </label></td>
  </tr>
</table>
<input type="submit" class="button" value="Submit" />
</form>
</div>
</body>
</html>

我很感激人们可以提供的任何和所有帮助:)

提前致谢。

S上。

1 个答案:

答案 0 :(得分:0)

这是一种可以禁用客户端按钮的方法。我还建议让服务器端按钮单击事件执行相同的检查,以防有人试图绕过禁用按钮。

客户端检查: 我先给你一个id:

<input type="submit" id="btnSubmit" class="button" value="Submit" />

将一个函数附加到window.onload全局事件处理程序:

window.onload = function () {
    var myInterval = setInterval(checkTime, 1000);
}

比较日期,停止间隔和禁用按钮的简单功能:

function checkTime(){
    var now = new Date();
    var dateLimit = new Date("2018-01-07T15:00:00")
    if (now > dateLimit){
        clearInterval(myInterval);
        document.getElementById("btnSubmit").disabled = true;
    }
}

服务器端检查:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    DateTime now = DateTime.Now;
    DateTime dateLimit = new Date(2018, 01, 07, 15, 0, 0);
    if(DateTime.Compare(now, dateLimit) < 0)
    {
        //process the event
    }
    else
    {
        //send error message to user
        return;
    }

}