2012-01-06 81 views
1

我有一個帶快速編輯功能的表(使用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(); 
    } 
}); 

謝謝。

回答

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事件被觸發「晚」,因爲它只有你按下後聽的關鍵,而不是形式已經提交。

+1

現貨,感謝您的提示。我確實必須將'e.preventDefault()'移動到'else if(e.keyCode === 13)'下,否則每個按鍵都會被阻止。謝謝。 – 2012-01-06 10:08:03

相關問題