2013-10-13 53 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); 
}