0

如果用户按下enter键,它应该表现得像他按下esc键一样。

function OnEditorKeyPress(editor, e) {
    if (e.htmlEvent.keyCode == 13) {
        e.htmlEvent.keyCode = 27;
        //treeList.CancelEdit();
    }
}

e.htmlEvent.keyCode = 27;但在此声明之后,值 13 也保持不变。如何分配新值或任何其他替代方法可以做到这一点?

4

3 回答 3

2

事件对象的这些属性是只读的(包括KeyCode),所以你不能做这样的事情。为什么你不能做这样的事情?

function OnEditorKeyPress(editor, e) {
   //If user press enter or escape
   if (e.htmlEvent.keyCode == 13 || e.htmlEvent.keyCode == 27) // correct comparison operation
   {
      treeList.CancelEdit();
      e.htmlEvent.preventDefault
   }
}

编辑:如果您坚持,请在 Mozilla 论坛上阅读:需要覆盖按键替换键码

于 2012-12-03T06:12:44.970 回答
0

您好,此代码可帮助您停止“Enter”按钮的默认功能但是,当用户按下“Enter”时,您可以输入代码以执行您想做的任何事情。尽管在 ENTER 上实现 ESC 功能将不受欢迎。

这是工作示例http://jsfiddle.net/Z4dgr/11/

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
function displayunicode(e){
e.preventDefault();
var unicode=e.keyCode? e.keyCode : e.charCode
alert(unicode)
}
</script>
<form>
Enter from keyboard <input type="text" size="2" maxlength="1" onkeypress="displayunicode(event); this.select()" />
</form>
</body>
</html>​
于 2012-12-03T06:10:16.083 回答
0

根据汤姆的回答,这就是您所需要的。

function OnEditorKeyPress(editor, e) {
   //If user press enter or escape
   if (e.htmlEvent.keyCode == 13 || e.htmlEvent.keyCode = 27) 
   {
      treeList.CancelEdit();
      e.htmlEvent.preventDefault();
   }
}
于 2012-12-03T06:17:44.590 回答