如果用户按下enter
键,则其行为与按esc
键的行为相同。
function OnEditorKeyPress(editor, e) {
if (e.htmlEvent.keyCode == 13) {
e.htmlEvent.keyCode = 27;
//treeList.CancelEdit();
}
}
但是在e.htmlEvent.keyCode = 27;
这句话之后,价值13仍然相同。如何分配新值或任何其他替代方法是为了做到这一点?
答案 0 :(得分: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论坛上阅读:Need to override key pressed replacing keycode
答案 1 :(得分:0)
您好此代码可以帮助您停止“输入”按钮的默认功能但是您可以输入您的代码,以便在用户按“输入”时执行任何操作。虽然在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>
答案 2 :(得分: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();
}
}