我正在尝试编写一个在某个时间禁用的表单,我希望使用javascript进行此操作。但是,由于人们可以轻松更改计算机上的日期,我希望使用Apache提供的日期作为比较日期。我尝试了一些简单的东西,但SSI回显日期不会与javascript日期进行比较。我的代码如下。有什么想法吗?
var currenttime = '<!--#config timefmt="%a %b %d %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->'
var currenttime = currenttime+' GMT-0400 (EDT)';
var disableDate = new Date();
disableDate.setFullYear(2011,9,18);
disableDate.setHours(17,0,0,0);
if(disableDate < currenttime)
$('#date_field').attr("disabled", true);
答案 0 :(得分:1)
您正在将字符串与日期进行比较。首先将currenttime
字符串转换为Date对象:
var currenttime = '<!--#config timefmt="%a %b %d %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" --> GMT-0400 (EDT)';
currenttime = new Date(currenttime);
也就是说,请尝试使用conditional SSI彻底禁用表单服务器端,而不是让JavaScript为您执行此操作。
答案 1 :(得分:0)
通常,您根本不需要它。如果你依赖JavaScript来禁用任何逻辑,那么期望你的页面被保存到磁盘,JavaScript会分开,并且表单会在现在或两年后的任何时间提交。
您应该关注的是“如何在某个时间拒绝处理此表单?” - 正如您所看到的,问题不再依赖于用户时钟了。去服务器端!
从JavaScript开始,仅为方便用户使用它。所有“安全”规则都适用于服务器端。