当前时间距数据库中设置的时间少于一小时时,如何禁用按钮?

时间:2013-12-02 21:06:48

标签: c# javascript asp.net-mvc-4 web

我有一个由Windows窗体应用程序控制的mvc 4网站。在此winform中,您可以设置将在网站上运行的拍卖的开始和结束时间。用户出价后,可以在拍卖结束前一小时将其删除。当前时间距离结束时间不到一小时时,如何禁用此删除按钮?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

在视图上添加一个计时器,以便在加载时,将使用拍卖结束的datetime值停用该按钮。

你可以在视图中的jquery中执行类似下面的操作(这是我头顶的粗略代码):

<script type="text/javascript">
    $(function () 
    {

        // essentially subtract your db value from now
        var auctionEndTime = datetimevaluefromthedatabase - datetimenow

        // if there's still time - greater than 1 hour then set timer
        if (auctionEndTime > 1) 
        {
            // note: you'll need milliseconds for the timeout
            var initTimer = setTimeout(function () { disableButton() }, auctionEndTime);
        }
        else
        {
            disableButton();
        }

        function disableButton() 
        {
            $('input:submit').attr("disabled", true);
        }

    });
</script>

答案 1 :(得分:0)

解决方案是设置间隔以使用$ .ajax或任何其他ajax实现来检查状态,并在时间到来时解除单击或删除按钮的绑定。

您还可以在剩余时间内进行一次检查,然后将时间放入内存中,然后以相等的间隔检查所需的时间。

由于javascripts特殊的时间处理,第二个解决方案是精确的,但这会减少你的后端和数据库的负载。