2012-07-13 36 views
3

我試圖提交沒有頁面刷新或提交按鈕的表單。但我只實現了JS功能提交輸入框值。是否可以在沒有按鈕點擊和刷新頁面的情況下提交整個表單?JS/AJAX:使用計時器提交表單而不是按鈕單擊或刷新頁面

JSFIDDLE

JS

  <script type="text/javascript"> 
       $(document).ready(function() { 
        var timer; 
         $('#yurl).on('keyup', function() { 
          var value = this.value; 

          clearTimeout(timer); 

          timer = setTimeout(function() { 

           //do your submit here 

           alert('submitted:' + value); 
          }, 2000); 
         }); 
       }); 
      </script> 

HTML

   <form method="post" id="ytVideo" action=""> 
       <input id="yurl" type="text" value="<?php $url ?>" name="yurl">  
       </form> 
+0

我不知道我是否正確理解了您的問題,但是基於我瞭解您嘗試自動提交表單,一旦達到時間限制。是對的嗎? – 2012-07-13 01:52:44

+0

是的,這是正確的。 – techAddict82 2012-07-13 01:53:44

回答

1

你的小提琴似乎在工作,但問題是你並沒有真的在任何地方提交它。

<script type="text/javascript"> 
$(document).ready(function() { 
         var timer; 
          $('#yurl).on('keyup', function() { 
           var value = this.value; 

           clearTimeout(timer); 

           timer = setTimeout(function() { 

            //do your submit here 
            $("#ytVideo").submit() 
            alert('submitted:' + value); 
           }, 2000); 
          }); 


    //then include your submit definition. What you want to do once submit is executed 
     $('#ytVideo').submit(function(e){ 
      e.preventDefault(); //prevent page refresh 
      var form = $('#ytVideo').serialize(); 
      //submit.php is the page where you submit your form 
      $.post('submit.php', form, function(data){ 
       //do something with the data 

      }); 
     }); 

}); 
</script> 
1

如果我深知你的要求,在那裏說//do your submit here你應該把:

$("#ytVideo").submit() 

其中ytVideo是表單的id你想提交

祝你好運!

+0

是的,當我更改爲窗體ID。我收到警報:'submitted:undefined' – techAddict82 2012-07-13 01:54:44

+0

我在你提供的JSFiddle中試過了,它對我來說工作得很好。 – ryuusenshi 2012-07-13 01:58:30

+0

對不起,我搞砸了,應該是$(「#ytVideo」)。submit(),而不是$(「ytVideo」)。submit() – ryuusenshi 2012-07-13 02:01:36

相關問題