如何捕获键盘事件?

zhenjie 2002-09-18 11:52:00
我在写代码的时候,想实现在某个Text框中如果用户输入的字符数目已经达到我的预设置的值,我将强制把focus转走,但现在发现数字个数满了之后我应该可以让用户返回修改,
在修改的时候如果用户用左、右箭头键移动光标,也同样响应keyup事件。我现在又想取出键盘按键的值强制保留光标,可是我现在不知如何取得键盘的按键值?请问那位大侠可以帮我?谢谢!
我的代码如下:
var frm=document.getElementById(id);
funckeyup_parm="func_On_KeyUp(" + "'" + szTxt + "'," + i + "," + nSum + ")";
frm.setAttribute("onkeyup",funckeyup_parm);



//焦点自动从第一个Text输入框移动到下一个Text输入框。
//szTxt:TEXT输入框的ID首关键字。
//nNum:当前TEXT输入框的顺序编号(从1开始)
//nSum:TEXT输入框的总个数。

function func_On_KeyUp(szTxt,nNum,nSum)
{
var id=szTxt+nNum;
var frm=document.getElementById(id);
var nMaxLength=frm.maxLength;
var nLength=frm.value.length;

if(nLength==nMaxLength)
{
nNum=nNum+1;
if((nNum)>nSum)
nNum=1;
id=szTxt+nNum;
frm=document.getElementById(id);
frm.focus();
}
}
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyycyu 2002-09-18
  • 打赏
  • 举报
回复
var MASKPASTE =
{
MaskNum:function()
{
var reg = /[^0-9]/g;
event.returnValue = false;
var data = window.clipboardData.getData("Text");
if(!data.match(reg))
event.srcElement.value=data;
}
};
var MASKEDIT =
{
MaskNum:function()
{
var code = event.keyCode;
if(code==13) event.returnValue=true;
else if(code<48||code>57) event.returnValue=false;
}
};
这是限制只能输入框只能是数字的代码!
flyycyu 2002-09-18
  • 打赏
  • 举报
回复
window.event.keyCode

至于粘贴的问题,onpaste="return false"
zhenjie 2002-09-18
  • 打赏
  • 举报
回复
楼上的楼上说的方法我使用过,不可以实现的。
如果我的函数没有自己的参数可以完成,但是我
加入了我的参数将不能取出 window.event.keycode值了。
对了我用的浏览器是Mozilla和NetScape,我一般不用
IE浏览器,但是我们现在用的都是标准对象模型,应该可以的
但就是不可以,愁死我了!!
那位可以帮我、
方工 2002-09-18
  • 打赏
  • 举报
回复
建议在onchange事件中检查,因为用鼠标也可以复制拷贝的。
sdtashenjie 2002-09-18
  • 打赏
  • 举报
回复
KeyCode:
window.event.keycode

zhenjie 2002-09-18
  • 打赏
  • 举报
回复
楼上用的是Mozilla or NetScape浏览器吗?

flyycyu 2002-09-18
  • 打赏
  • 举报
回复
当然可以从event.keyCode取到了!不过keyCode不是任意键值都能取到,
例如del键
zhenjie 2002-09-18
  • 打赏
  • 举报
回复
我现在想要的并不是掩码问题,我想截获任何输入的键值,在事件出发函数处理中我要取得这个按键的值。如果我的函数不带有任何参数可以完成功能,但是我现在已经有自己的参数就不能取出键值吗?
如楼上的代码我改造如下就不行了吗:
MaskNum:function(my_parm)
{
var reg = /[^0-9]/g;
event.returnValue = false;
var data = window.clipboardData.getData("Text");
if(!data.match(reg))
event.srcElement.value=data;
}

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧