【发布时间】:2016-12-23 19:05:08
【问题描述】:
在我的项目中输入文本框 keypress 或 keyup 事件调用此函数中的 maxlimit 函数检查当前值是否大于最大限制值以删除当前 keynum 值。 (即)我将最大限制设置为 23,然后我输入 22 以允许
现在文本框的值是 22 ,然后我输入 212 只需要删除 1 。 otherwsie 322 仅删除 3,对整个文本不清楚。这可能吗?
Javascript
function hour(id, e)
{
var keynum;
if (window.event) // IE
{
keynum = e.keyCode;
}
else if (e.which)
{
keynum = e.which;
}
if (id !== undefined)
{
console.info("Text box Value : " + id.value);
console.info("Charcter key press value : " + String.fromCharCode(keynum));
console.info("Now Key press Position :"+id.value.indexOf(keynum));
var currentValue = id.value + String.fromCharCode(keynum);
console.info("Combine value :"+currentValue);
if (currentValue > 23)
{
...............
}
}
else
{
............
}
}
【问题讨论】:
-
不完全相关,但
if (window.event)不是可靠的IE检查,Chrome也实现了全局事件对象。 -
另外,从
keyCode/which获取字符也不可靠。例如。在数字键盘上输入数字时,代码将失败。
标签: javascript