2012-07-13 71 views
3

我目前使用js功能提交數據,無需刷新頁面或點擊按鈕。輸入字段在選項卡#2內,用戶停止鍵入後執行js。問題在於js正在刷新頁面,因此將我帶回到選項卡#1。我怎樣才能防止頁面刷新?我以爲我已經在JS函數中包含了必要的代碼來阻止它。 EXAMPLEJS/Ajax:無需刷新或按鈕點擊即可獲取輸入字段值

<script> 
$(document).ready(function() { 
    var timer; 
     $('#video-input1').on('keyup', function() { 
      var value = this.value; 

      clearTimeout(timer); 

      timer = setTimeout(function() { 

       //do your submit here 
       $("#ytVideo").submit() 


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

    //submit definition 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('index.php#tab-2', form, function(data){ 
      var x = $(data); 
      $("body").html(x); 
     }); 
     return false; 
    }); 
    return false;               

}); 
</script> 
+0

'$(「#ytVideo」)。submit()'行是問題。你提交表單,然後到達你的'$('#ytVideo')。submit(function(e){'event,你禁用默認行爲並返回false。 – Jeemusu 2012-07-13 16:53:25

+0

謝謝你的迴應,我該如何解決這個問題? – techAddict82 2012-07-13 17:18:28

回答

2

嘗試改變這一行

//do your submit here 
$("#ytVideo").submit() 

$("#ytVideo").trigger("submit"); 

我認爲,問題是你定義什麼提交表單提交後,這將導致頁面應該做的重裝。
編輯
嘗試這種變化

$('#ytVideo').submit(function(event){ 
     event.preventDefault(); //prevent page refresh 
     event.stopPropagation(); //+ 
     var form = $('#ytVideo').serialize(); 

     //submit.php is the page where you submit your form 
     $.post('index.php#tab-2', form, function(data){ 
      var x = $(data); 
      $("body").html(x); 
     }); 
     //- return false; 
    }); 
    //- return false; 

做了一些改動

+0

+1是的,我做了你所說的,但它似乎刷新頁面帶我回到標籤-1 – techAddict82 2012-07-13 17:20:44

+0

作了一些改變,你也使$(「body」)。html(x)< - 這取代了所有的身體HTML,希望腳本標記與jQuery代碼不在那裏,因爲它將被替換! – Gntem 2012-07-13 19:03:04

相關問題