2012-12-21 45 views
0

我使用下面的代碼來自動提交表單無刷新,但問題是當我使用手冊中的表單字段提交按鈕,並提交它只是工作正常,但自動提交刷新。我想提交表單並將數據存儲在mysql中。與手動提交和經銷商submissin數據得到存儲,但頁面獲取與此,我不想阿賈克斯jQuery的自動錶單提交問題

<script type="text/javascript"> 
window.onload = function() { 
    setTimeout('document.form1.submit()',10000); 
} 
</script> 

<script type="text/javascript" > 
$(function() { 
$(".button").click(function() { 

var searchBox = $("#searchBox").val(); 
var dataString = 'searchBox='+ searchBox ; 
if(searchBox=='') 
{ 
    $('.success').fadeOut(200).hide(); 
    $('.error').fadeOut(200).show(); 
} 
else 
{ 
    $.ajax({ 
    type: "POST", 
    url: "ytitest1.php", 
    data: dataString, 
    success: function(){ 
    $('.success').fadeIn(200).show(); 
    $('.error').fadeOut(200).hide(); 
} 
}); 
} 
return false; 
}); 
}); 


</script> 

這裏自動提交刷新是活鏈接http://way2enjoy.com/try/k/ytitest1.php

我想自動提交唯一的,但網頁不應該刷新

+3

請縮進代碼(也是正確的punctation可能需要) – freedev

+0

所以你說..要停止表單時手動提交自動提交的部分? – phpisuber01

+0

@ phpisuber01只需自動提交,但頁面不應該refreh – raviloves

回答

0

你的。點擊功能應該有那麼E參數在函數的正文中添加

e.preventDefault(); 
$(function() { 
$(".button").click(function(e) { 
e.preventDefault(); 
var searchBox = $("#searchBox").val(); 
var dataString = 'searchBox='+ searchBox ; 
if(searchBox=='') 
{ 
    $('.success').fadeOut(200).hide(); 
    $('.error').fadeOut(200).show(); 
} 
else 
{ 
    $.ajax({ 
    type: "POST", 
    url: "ytitest1.php", 
    data: dataString, 
    success: function(){ 
    $('.success').fadeIn(200).show(); 
    $('.error').fadeOut(200).hide(); 
} 
}); 
} 
}); 
}); 
+0

可以請你在我的JavaScript的確切位置 – raviloves

+0

mamdouh alramadan,返回false已經e.preventDefault() –

+0

@PavelK,有時你應該明確的瀏覽器 –

0
<script type="text/javascript" > 
    $(function() { 
     $("form").submit(function() { 
      var searchBox = $("#searchBox").val(); 
      var dataString = 'searchBox='+ searchBox ; 
      if(searchBox=='') 
      { 
       $('.success').fadeOut(200).hide(); 
       $('.error').fadeOut(200).show(); 
      } 
      else 
      { 
       $.ajax({ 
        type: "POST", 
        url: "ytitest1.php", 
        data: dataString, 
        success: function(){ 
         $('.success').fadeIn(200).show(); 
         $('.error').fadeOut(200).hide(); 
        } 
       }); 
      } 
      return false; 
     }); 
    }); 
    </script> 

當你被觸發自動提交表單onsubmit事件,而不是點擊

+0

你的代碼工作得很好,但在頁面加載後立即提交表單,但用戶並沒有任何搜查所以我以10秒延時表單提交mysql中的數據是空的??/ – raviloves

+0

raviloves,這個代碼沒有按不執行任何操作,它只是綁定事件。但是您可以驗證此代碼中的字段。 **如果(搜索框==「」)返回false; ** 將這個權限聲明變量 –

+0

不回假,甚至工作之後。它插入到mysl中,但是爲空 – raviloves

0

這是你需要什麼,我已經包括供您參考的全部代碼。

這個例子具有綁定到Ajax調用的形式本身,而當它被稱爲表單操作什麼都不做,只處理了jQuery。適用於自動通話或手動通話。

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
    </head> 
    <body> 
     <form id="myform" name="myform" action="#NULL" method="POST"> 
      <input type="text" name="myname"> 
      <input type="submit"> 
     </form> 

     <script> 
      $(document).ready(function() { 
       setTimeout(function() { 
        $('#myform').submit(); 
       }, 1000); 
       $('#myform').submit(function(e) { 
        e.preventDefault(); 
        window.alert('Do work here.'); 
       }); 
      }); 
     </script> 
    </body> 
</html> 

這裏是關於jQuery的.submit的文檔()處理:http://api.jquery.com/submit/包括關於.preventDefault信息()也。