我有一个表单和一个文本输入字段,用于显示日期。我希望能够通过.onkeypress
捕获条目,以便“+”添加一天,“ - ”减去一天等等。
除了我输入的密钥(在“+”键下面的示例中)最终被附加到dDate字段之外,我已经完成了所有工作。
将moment.js添加到HTML标记的标记中 以下是在HTML标记
之后找到的<form>
<input type="text" id="dDate" size="25" value="11/22/2014"></textarea>
</form>
<script type="text/javascript">
document.getElementById("dDate").onkeypress=function(e) {
var e=window.event || e
var keyunicode=e.charCode || e.keyCode
//Allow alphabetical keys, plus BACKSPACE and SPACE
// return (keyunicode>=65 && keyunicode<=122 || keyunicode==8 || keyunicode==32)? true : false
switch (keyunicode) {
case 61:
alert("Hit Plus Key: "+ keyunicode);
break ;
case 43:
var cDate = document.getElementById("dDate");
var d = moment(cDate.value);
var duration = moment.duration({'days' : 1});
d.add(duration);
cNewDate = d.format('MM/DD/YYYY')
cDate.value = cNewDate;
break;
case 187:
alert("Hit Plus Key: "+ keyunicode);
break;
default:
alert("Hit non-Plus Key" + keyunicode);
}
}
</script>
以下是标准HTML标记
如果你点击 + 键,上面的结果是dDate字段增加到11/23/2014,但也有“+”,结果是:11/23/2014+
非常感谢任何帮助。
答案 0 :(得分:0)
在脚本末尾添加e.preventDefault()
将解决您的问题。
document.getElementById("dDate").onkeypress = function(e) {
// ...
e.preventDefault();
}
此外,<input>
是自动关闭的,因此需要删除</textarea>
。