Вы можете «ограничить», что входной клиент будет использовать 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
В каком формате 'curdate'? Это временная метка, не так ли? – Bergi