2013-10-13 90 views
1

我試圖發佈一個表單與Ajax和它的工作正常......但是當我嘗試把自動提交表單不工作... 如果我按提交按鈕..其罰款..但如果我setInterval(「submitform();」,5000);阿賈克斯不工作(我的意思是重新加載頁面)。JQuery AJAX自動提交表格

ajax.js

$(document).ready(function(){ 
    $('#form1').submit(function(){ 
     $.ajax({ 
      url : 'inserir.php', 
      type : 'POST', 
      data : $('form').serialize(), 
      success: function(data){ 
       $('#resultado').html(data); 
      } 
     }); 
     return false; 
    }); 
}) 

form.html

<html> 
<head> 
    <script type="text/javascript" src="ajax.js" ></script> 
</head> 
<body> 
<form id="form1" method="POST"> 
    Código: <br /> 
    <input type="text" name="idVeiculo" id="idVeiculo" value="1"/> 
    <br /><br /> 
    Nome: <br /> 
    <input type="text" name="nome" id="nome" /><input type="submit"> 
</form> 

<div id="resultado"></div> 
<script type="text/javascript"> 

    window.onload=function(){ 
    setInterval("submitform();", 5000); 
    } 
    function submitform(){ document.getElementById('form1').submit(); } 

</script> 
</body> 
</html> 

所以,如果我按下按鈕時,如果我使用自動提交功能正常工作...... ,重載頁面,而不僅僅是將數據發佈到php文件。

感謝您的任何幫助!

回答

4

從MDN

https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.submit

的表單的onsubmit事件處理程序(例如,的onsubmit = 「返回false;」)調用從基於Gecko的應用此方法時將不被觸發。一般來說,不保證被HTML用戶代理調用。

你應該Ajax調用分成功能,只需要調用它在超時功能

$(document).ready(function(){ 
    $('#form1').submit(ajax); 
}) 
function ajax(){ 
     $.ajax({ 
      url : 'inserir.php', 
      type : 'POST', 
      data : $('form').serialize(), 
      success: function(data){ 
       $('#resultado').html(data); 
      } 
     }); 
     return false; 
} 
... 
window.onload=function(){ 
    setInterval(ajax, 5000); 
}