可以「限制」什麼客戶端輸入將使用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