2010-12-01 65 views
2

我試圖寫一個自動提交形式(類似於谷歌即時),而現在我使用這個腳本可以這樣做:jQuery的表單自動提交

$(document).ready(function() { 
    $('#string').change(function(){ 
     var url = $(this).val(); 
     $('#area').load('cgi/test.pl',{string:url}); 
    }); 
}); 

現在,這個問題是使用後完成輸入後,他需要點擊輸入字段外部。我曾嘗試使用onkeyup等,而不是change,但首先會導致瘋狂的請求數量,其次,如果您在該字段中粘貼文本,它將無法正常工作。我也嘗試使用javascript setTimeout與腳本的組合,但無法真正讓它工作。

基本上,我所追求的是自動提交腳本,它在用戶仍在鍵入時檢測'(因此某種延遲提交),並且還可以檢測文本何時粘貼到輸入字段。

歡呼任何建議。

回答

1

爲什麼沒有setTimeout工作?嘗試做這樣的事情:

$(document).ready(function() { 
    var currentTimeout = null; 

    $('#string').keyup(handler); 
    $('#string').change(handler); 

    var handler = function() {  
     if(currentTimeout != null) { 
      clearTimeout(currentTimeout); 
     } 

     currentTimeout = setTimeout(function() { 
      var url = $(this).val(); 
      $('#area').load('cgi/test.pl',{string:url}); 
     }, 750); 
    }; 
}); 
+0

我用`setTimeout`實現它的方式我無法讓腳本提交完整的字符串,它總是會提交缺少最後一個或兩個字符的字符串(取決於我輸入的速度),不幸的是我可以'找到該腳本的版本。反正上面的腳本歡呼,我會盡快測試它 – 2010-12-01 21:57:23