我在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',但是禁用了键盘输入。这可能是一个愚蠢的错误,但我是一个真正的初学者,学习教程,示例代码和来自世界各地的代码!
亲切的问候你的帮助!!!, 克里斯托夫
答案 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/