我有一个自定义验证程序,指向客户端脚本以验证文本框。
我的日期和时间分为两个文本框 - 一个以mm / dd / yyyy格式显示日期,另一个以hh:mm am / pm格式显示时间。
我需要确保文本框在一起不比现在大。我怎么能做到这一点?
这是我到目前为止所拥有的。我做错了什么?
function checkminutes(sender, args) {
var txtdate = $get('<%=FormView1.FindControl("txtdate").ClientID %>');
var txttime = $get('<%=FormView1.FindControl("txttime").ClientID %>');
var totaltime = txtdate.value + ' ' + txttime.value;
totaltime = Date(totaltime);
var d = new Date();
if (totaltime > d) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
这是有效的答案。
function checkminutes(sender, args) {
var txtdate = $get('<%=FormView1.FindControl("txtdate").ClientID %>');
var txttime = $get('<%=FormView1.FindControl("txttime").ClientID %>');
var totaltime = txtdate.value + ' ' + txttime.value;
totaltime = Date.parse(totaltime);
var d = new Date();
if (totaltime > d) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
答案 0 :(得分:1)
只需比较自纪元以来的毫秒数:
totaltime = new Date("1988/02/21 08:08");
d = new Date();
if (totaltime.getTime() < d.getTime())
alert("Date is valid");
else
alert("Try again, Date is not valid");
编辑:当我使用“am / pm”时,我似乎无法让它工作,所以只需将其转换为24次,就可以了。
答案 1 :(得分:0)
不要浪费时间在客户端验证这一点。无论如何,无论你要在服务器端进行验证,它都永远不会可靠。
答案 2 :(得分:0)
您不应该使用javascript弹出窗口提醒用户存在问题;他们充其量只是笨重。
除非您告诉用户AJAXy页面存在问题,否则只需进行服务器端验证,您的应用程序将更加流畅。我假设你问的是这个问题,你不是在做AJAX。
就服务器端验证没有“确切时间”而言,您需要处理小时和分钟,而不是毫秒。