2011-07-08 67 views
0

我有一個簡單的表單,一個文本字段和一個提交按鈕。點擊提交後,我發出一個ajax請求,返回一些jquery執行。在這個jQuery中,我禁用了表單的提交按鈕,並在文本字段更改時啓用按鈕。以下是我正在使用的代碼:rails 3 + jquery啓用提交按鈕上的文本字段更改

$("#my_form input[type=submit]").attr("disabled","true"); 
$("#my_form #my_form_text").change(function() 
{ 
    $("#my_form input[type=submit]").removeAttr("disabled"); 
}); 

問題是我希望在更改文本字段後立即啓用提交按鈕。在更改文本字段並將光標移出文本字段之後,提交按鈕處於啓用狀態。有沒有一種方法提交按鈕獲得啓用,只要我在文本字段中進行修改(即使我的光標仍然在文本字段中)?

謝謝。

回答

1

將文本字段綁定到keyup事件。每次按下某個鍵時,您都會知道文字正在改變。

http://api.jquery.com/keyup/

$('textfield').keyup(function() { 
    alert('text changed'); 
}); 
0

你可能想看看jQuery的keyup方法:http://api.jquery.com/keyup/

在事件處理程序,檢查是否有任何實際的輸入作爲keyup事件的結果,而比如說,用戶只按了刪除鍵。

小心雖然:用戶可能仍然使用鼠標複製和粘貼文本,兩個事件都不會觸發。

這樣可以適應所有的情況下,我能想到的現在:

var changeHandler = function (e) { 
    if (this.value) $("input[type=submit]").removeAttr("disabled"); 
}; 
$("input[type=text]").keyup(
    changeHandler 
).change(
    changeHandler 
).mousemove(
    changeHandler 
); 

參見:http://jsfiddle.net/E86T9/

相關問題