键盘输入用于“全部清除”'在Javascript计算器上运行

时间:2014-06-30 07:18:01

标签: javascript ascii keyboard-events

我在Javascript中使用此代码在计算器上输入键盘。所有的数字和小数都有效,但'全部清除'却没有。 有谁知道为什么?我使用了错误的ascii代码吗?

//Add keyboard input
$(document).keypress(function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode === 49) {
        $("#one").click();
   } else if (keycode === 50) {
        $("#two").click();
    } else if (keycode === 51) {
        $("#three").click();
    } else if (keycode === 52) {
        $("#four").click();
    } else if (keycode === 53) {
        $("#five").click();
    } else if (keycode === 54) {
        $("#six").click();
    } else if (keycode === 55) {
        $("#seven").click();
    } else if (keycode === 56) {
        $("#eight").click();
    } else if (keycode === 57) {
        $("#nine").click();
    } else if (keycode === 48) {
        $("#zero").click();
    } else if (keycode === 127 || keycode === 08) {
        $("#clearall").click();
    } else if (keycode === 46 || keycode === 44) {
        $("#decimal").click();
    }  
});

您可以在JSFiddle上找到完整的项目:http://jsfiddle.net/depauw/XfRDx/ 我不认为'clearall'功能被打破了。当我按下屏幕上的按钮时,执行清除所有功能。

我想要达到的目的是:当用户输入他/她的号码时出错,他/她可以通过按删除按钮和/或退格键来删除它。

我已经尝试通过keyup的keydown替换'keypress',但是禁用了键盘输入。这可能是一个愚蠢的错误,但我是一个真正的初学者,学习教程,示例代码和来自世界各地的代码!

亲切的问候你的帮助!!!, 克里斯托夫

1 个答案:

答案 0 :(得分:0)

问题是由按键功能引起的。使用keyup函数代替keypress。 keyup具有处理本机密钥的更多功能。请参阅jquery文档。

    $(document).keyup(function(event){  /*your stuff is here */   });

查看这些jquery事件之间差异的一个很好的解释

http://howtodoinjava.com/2013/12/20/jquery-keyup-function-demo/