Javascript 防止按钮在';输入';在某个位置被按下

Javascript 防止按钮在';输入';在某个位置被按下,javascript,jquery,preventdefault,Javascript,Jquery,Preventdefault,我有一个带有快速编辑功能的表(使用AJAX只更新一个字段),我希望“回车”提交更改。问题是,我在同一页上的表单上有一个按钮,每次我按下“回车”按钮时,该按钮附带的操作(即提交表单,我不想这样做)就会被触发,我一辈子都不知道如何防止这种情况发生 我已经尝试了以下代码,防止了keyup事件(可能是错误的)和按钮上的默认设置。但我的理解是,您阻止了事件的默认设置,而不是对象,因此我真的不知道该怎么做- /** Capture a key press (while a field within the

我有一个带有快速编辑功能的表(使用AJAX只更新一个字段),我希望“回车”提交更改。问题是,我在同一页上的表单上有一个按钮,每次我按下“回车”按钮时,该按钮附带的操作(即提交表单,我不想这样做)就会被触发,我一辈子都不知道如何防止这种情况发生

我已经尝试了以下代码,防止了keyup事件(可能是错误的)和按钮上的默认设置。但我的理解是,您阻止了事件的默认设置,而不是对象,因此我真的不知道该怎么做-

/** Capture a key press (while a field within the quick edit row is selected) */
qeRow.keyup(function(e){
    e.preventDefault(); // Also tried '$('#change-permissions-button').preventDefault'
    if(e.keyCode === 27) { // Cancel on 'escape' (This is working fine)
        return inlineEditUserGroup.revert();
    } else if(e.keyCode === 13) { // Save the data on 'enter'
        return inlineEditUserGroup.save();
    }
});

谢谢。

尝试收听按键或按键事件

qeRow.keypress(function(e){
    e.preventDefault(); // Also tried '$('#change-permissions-button').preventDefault'
    if(e.keyCode === 27) { // Cancel on 'escape' (This is working fine)
        return inlineEditUserGroup.revert();
    } else if(e.keyCode === 13) { // Save the data on 'enter'
        return inlineEditUserGroup.save();
    }
});

我猜keyup事件是“延迟”触发的,因为它只在您按下后才侦听一个键,并且表单已经提交。

请点击,谢谢提示。如果(e.keyCode==13)的话,我必须将
e.preventDefault()
移动到
下,否则每次按键都会被阻止。谢谢