当在某个位置按下“enter”时,阻止按钮提交表单

时间:2012-01-06 09:22:40

标签: javascript jquery preventdefault

我有一个带快速编辑功能的表(使用AJAX只更新一个字段),我希望'enter'提交更改。麻烦的是,我在同一页面上的表格上有一个按钮,每次按下“输入”附加到该按钮的动作(即提交表格,我不想做)都被解雇了,我无法想象为我的生命如何防止这种情况。

我尝试了以下代码,防止了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();
    }
});

感谢。

1 个答案:

答案 0 :(得分:3)

尝试收听keydown或keypress事件。

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-event被触发'迟到',因为它只在你按下后才会听一个键,而且表格已经提交了。