可以“限制”什么客户端输入将使用JavaScript,以便确保将所输入的数据是数字,例如。使用该数字输入,您可以非常容易地以所需格式构建字符串。
我已经设置了this fiddle,几乎和下面的代码一样。小提琴也会进行一些基本检查(比如不接受日期à33/54/1001),并且也解析日期。输入完整日期后,点击按钮并检查控制台中的输出:它是一个普通的日期对象,可以与另一个日期对象进行比较(如今天:curdate = new Date();
)。
但为了让你上手,这里的按键处理程序的简化版本,与用户输入的交易:
var keypress = function(e)
{
e = e || window.event;//FROM HERE
var el = e.target || e.srcElement,
char = String.fromCharCode(e.keyCode || e.which);
e.returnValue = false;
e.cancelBubble = true;
if (e.preventDefault)
{
e.preventDefault();
e.stopPropagation();
}//TO HERE, a lot of X-browser issues are adressed
if (char == +(char) && el.value.length < 10)
{//format input:
el.value = (el.value + char).replace(/^([0-9]{0,2})\/*([0-9]{0,2})\/*([0-9]{0,4})$/,function(all, m, d, y)
{
m += m.length === 2 ? '/' : '';
d += d.length === 2 ? '/' : '';
return m+d+y;
});
}
return e;//done
};
var dateIn = document.getElementById('dateInputElement');
if (dateIn.addEventListener)
{//add event handlers
dateIn.addEventListener('keypress',keypress, false);
}
else
{
return dateIn.attachEvent('onkeypress',keypress);
}
为了更好地了解这段代码的,你可能想看看here和here。
不能解决我遇到的问题。 – Lynx 2013-05-03 13:46:38
“curdate”是什么格式?这是一个时间戳,不是吗? – Bergi 2013-05-03 14:29:55