首页 新闻 会员 周边 捐助

几个javascript的小问题?

0
悬赏园豆:40 [待解决问题]

1,有哪些方法可在javascript中接受用户自己输入的字符串?

2.按下键盘上的键的时候,用对话框显示按下的字符,包括Alt,shift,ctrl,还有同时按下的情况?

问题补充: 1)javascript接受可以用控件接受并且显示或者用对象存储。 2)第二个请给出具体的脚本写法,谢谢!
李福春的主页 李福春 | 初学一级 | 园豆:140
提问于:2011-01-27 16:26
< >
分享
所有回答(5)
0

响应文本框的onKeyDown事件:if(window.event.keyCode == 13){window.event.keyCode = 9;}

通过keycode来判断按下的键:

keyCode如下:

ascii码说明:

8:退格键

46:delete

37-40: 方向键

48-57:小键盘区的数字

96-105:主键盘区的数字

110、190:小键盘区和主键盘区的小数点

189、109:小键盘区和主键盘区的负号

 

13:回车

9: Tab 就是那个把焦点移到下一个文本框的东东。

FlyDragon | 园豆:396 (菜鸟二级) | 2011-01-27 17:52
0

2. onkeydown="alert(event.keyCode)"

接收是指?不使用控件?

六芒星 | 园豆:627 (小虾三级) | 2011-01-27 17:53
0

监听键盘事件代码就可以了

Y2zz | 园豆:393 (菜鸟二级) | 2011-01-31 11:05
0
 1 <html xmlns="http://www.w3.org/1999/xhtml">
 2 <head>
 3 <title></title>
 4 <script type="text/javascript">
 5 //问题一
 6 function setValue(o) {
 7 document.getElementById("text2").innerText = o.value;
 8 }
 9 //alt ctrl shift键盘按下捕捉(问题二)
10 function test1() {
11 if (window.event.altKey) {
12 alert('alt键按下')
13 } else if (window.event.ctrlKey) {
14 alert('ctrl键按下')
15 } else if (window.event.shiftKey) {
16 alert('shift键盘按下')
17 } else {
18 alert('普通')
19 }
20 }
21 
22 //alt ctrl shift同时按下(问题二)
23 function test2() {
24 if (window.event.altKey && window.event.ctrlKey && window.event.shiftKey) {
25 alert('alt+ctrl+shift同时按下') 
26 }
27 }
28 </script>
29 </head>
30 <body>
31 输入<input type="text" id="text1" onkeyup="setValue(this)"/>
32 获取<input type="text" id="text2" />
33 <input type="button" onclick="test1()" value="alt ctrl shift 按下" />
34 <input type="button" onclick="test2()" value="alt ctrl shift 同时按下" />
35 </body>
36 </html>
zernitta | 园豆:235 (菜鸟二级) | 2012-04-17 23:55
0

键盘的太傻了

因为用户可能用鼠标右键点粘贴, 让内容改变。

这个不触发key的任何事件。

 

现在比较流行的做法是:

1 挂oninput事件。 这个应该是被非IE浏览器都支持的。

2 挂onpropertychange事件。 这个是IE支持的。

 

例如:

            if (Object.prototype.hasOwnProperty.call(this, 'onpropertychange')) {
                $(this).bind('propertychange', function (event) {
                    if (event.originalEvent.propertyName === 'value') {
                        // bind data here for IE browser
                    }
                });
            }
            else {
                $(this).bind('input', function () {
                        // bind data here for non-IE browser
                })
            }

 

当然了这只是示例。 不代表完善的代码。

undefined | 园豆:898 (小虾三级) | 2012-08-16 10:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册