我有一个HTML页面,其中有几个字段,其中一个是使用jquery插件选择DateTime,它允许用户选择DateTime,如:2011-06-05 07:10
或2011-03-05 11:10
等。我的问题是怎么做我在将此字段值发布到服务器之前验证该字段值。我想使用javascript确保字段值仅为此格式的DateTime,并且不是"2231"
或"afaf"
之类的无效值。
答案 0 :(得分:1)
如果用户想要篡改他发送的数据,他会通过规避jQuery插件以及客户端上的任何其他验证代码来实现。那么在客户端上编写额外的验证代码是没有意义的。
如果用户不想要篡改他发送的数据,那么jQuery插件应该确保适当的格式。那么在客户端上编写额外的验证代码是没有意义的。
仅在服务器上验证此字段。
答案 1 :(得分:0)
你也必须在服务器上验证。
客户端测试类似日期字符串的最简单方法是使用Date.parse这样(我没有测试格式而不是使用日期解析。如果用户输入另一种格式,则需要测试太)
var DT = Date.parse(DateTime.replace("-","/","g"));
if (isNaN(DT)) {
alert('Invalid date');
return false;
}
var testDate = new Date(DT);
var parts = DateTime.split(" ")[0].split("-");
if (testDate.getFullYear() != parseInt(parts[0]) ||
testDate.getMonth() != parseInt(parts[1]-1) ||
testDate.getDate() != parseInt(parts[2])) {
alert('Invalid date');
return false;
}
如果您使用小部件来创建日期,这当然是完全没必要的。