我有一个用户输入日期的标准<input>
文本框。我想添加一些功能,用户可以输入+
或-
来从该值中添加/减去一天。我添加了一个onkeypress
事件调用此函数:使用按键事件在文本框中调整日期
function adjustDate(element) {
var e = event || window.event;
var code = e.charCode || e.keyCode;
switch(code) {
case 43: // user pressed "+" (plus)
if(isDate(element.value)) {
var d = new Date();
d.getDate(element.value);
d.setDate(d.getDate() + 1);
element.value = (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getYear();
} else {
var today = new Date();
element.value = (today.getMonth() + 1) + "/" + today.getDate() + "/" + today.getYear();
}
if(e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false;
element.select();
break;
case 45: // user pressed "-" (minus)
// ...
}
}
的isDate
功能我脱下谷歌和作品,但如果需要,我可以张贴这一点。
我的问题是有一次,那么nada的作品。例如,如果文本框的值为10/1/2009
,则按+
将使其为10/2/2009
,但对后续加号没有影响。然后,如果我按-
它会去9/30/2009
,而不是回到10/1/2009
,并忽略随后的减按键。
我在测试IE8。这是一个内部网络应用程序,所以其他浏览器会很好,但不一定是必需的。我目前没有使用jQuery或任何其他框架,而这可能是矫枉过正,所以我正在寻找一个纯粹的Javascript解决方案。事实上,这个功能只是一个“很好有”,而不是我需要花费更多时间的东西。
我知道我要么失去了一些东西,要么完全错误。那它是哪一个?
谢谢。那就是诀窍。 – 2009-10-01 17:36:28