2012-07-19 76 views
0

我有我的網頁上輸入字段,我發現,當用戶鍵入的東西,使保存按鈕更改事件被解僱。我也已經啓用快捷按Ctrl +小號讓用戶保存。每當數據被保存時,保存按鈕被禁用。的Javascript:當輸入字段失去焦點

但是我有一個兩難選擇。如果用戶更改了輸入字段中的文本,請執行下列操作:Ctrl + S然後使用鼠標移動到另一個輸入字段,會爲用戶更改的輸入字段觸發「更改」事件,然後輪流導致保存按鈕再次啓用。保存按鈕不應該被啓用,因爲沒有變化做了按Ctrl +小號發生。看起來是change事件不僅僅伴隨着文本的變化,而且當焦點移動到另一個字段時。

$("input.SaveMe").live('keypress change', function() 
{ 
    // Code goes here to enable Save button 
}); 

如何防止保存後發生更改事件。我想過使用某種標誌,但我無法弄清楚。

+2

[BRRR ...](http://stackoverflow.com/questions/9422069/jquerys-live-is-deprecated-what-do-i-use-now) – 2012-07-19 12:39:52

回答

-1

刪除「更改」檢測可以解決問題,但現在可以防止用戶將文本粘貼到字段中,並將粘貼檢測爲更改。爲了解決這個問題使用:

$(document).bind('paste', function (e) 
{ 
    // Add code to update flag to indicate data changes and enable the Save button. 
}); 
2

您可以通過以下方式忽略該特定輸入爲未處於焦點的事件。

$("input.SaveMe").live('keypress change', function() { 
    if (!$(document.activeElement).id == 'id_of_input') return; //if (!$(document.activeElement).hasClass('SaveMe')) return; 
    // Code goes here to enable Save button 
}); 
+0

「 SaveMe「不是一個ID。這是一個班級名稱。 – AndroidDev 2012-07-19 12:42:15

+0

我的錯誤.. – 2012-07-19 12:43:10

+0

@DarkXphenomenon類是'className'。如果有一個類只:) – 2012-07-19 12:44:23