例如,您可以“限制”客户端输入将使用 JavaScript 的内容,以确保输入的数据是数字。使用该数字输入,您可以轻松构建所需格式的字符串。
我已经设置了这个小提琴,几乎与下面的代码相同。小提琴也做了一些基本的检查(比如不接受日期 à la 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);
}
为了更好地理解这段代码,您可能想看看这里和这里。