1

クイック編集機能(AJAXを使用して1つのフィールドのみを更新する)を備えたテーブルがあり、「enter」で変更を送信したいと思います。問題は、同じページのフォームにボタンがあり、「Enter」を押すたびに、そのボタンに添付されているアクション(つまり、フォームを送信する、実行したくない)が実行され、理解できないことです。それを防ぐ方法を私の人生のために。

私は次のコードを試しましたが、キーアップイベント(おそらく間違っています)とボタンのデフォルトを防ぎます。私の理解では、オブジェクトではなくイベントのデフォルトを防ぐので、どうすればよいか本当にわかりません-

/** 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();
    }
});

ありがとう。

4

1 に答える 1

3

Try listening to the keydown or keypress event.

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();
    }
});

I guess the keyup-event is triggered 'to late', because it only listens to a key after you pressed in, and than the form is already submitted.

于 2012-01-06T09:30:50.260 に答える