如何使用jQuery设置计时器来发送HTML表单的HTTP发布数据

我有一个HTML表单,我需要使用HTTP POST和输入数据发布到服务器。

具体来说,我只需要发送表单中选中的所有复选框的参数值。

如果用户在10分钟内没有自己动手,我需要这样做。

我不确定实现这一目标的最佳方法,但是现在我正在尝试使用jQuery做到这一点,但遗憾的是我对JavaScipt或jQuery一无所知,所以我试图学习它但却未能实现这么简单的事情。

我需要在加载表单的页面10分钟后运行以下内容。

$("document").ready(function() { var checkedInputElements = $(":input[value=true]"); var paramNames = []; jQuery.each(checkedInputElements, function() { var paramName = $(this).attr("name"); paramNames.push(paramName); }); $("form").submit(function() { jQuery.post({ type: 'POST', url: "http://localhost:8080/wickedlynotsmart/auto-submit-form", data: paramNames }); return true; }); }); 

我不确定上面的代码是否正确。 我还在努力。 有人可以建议我一个指南,我可以用来编写一个计时器,以便这个代码在页面加载后10分钟结束后运行?

谢谢。

编辑

       wikedlynotsmart.com <link rel="stylesheet" type="text/css" href="" /> <link rel="stylesheet" type="text/css" href="" /> <script type="text/javascript" src=""> <script type="text/javascript" src="">  SyntaxHighlighter.all()   //auto-submit-form javascipt code     
<form id="form" action="" method="post">
  1. ${thing.something}
  2. ${matter.somematter}


这是我正在努力的页面,并试图让事情适合我。

这样做:

 setInterval(submit_me, 600000); // (1000 * 60 * 10 = 600000) function submit_me() { $('#form').submit(); } 

更短的版本:

 setTimeout(function() { $('#form').submit(); }, 5000); 

使用setTimeout(function, millisDelay)

 $("document").ready(function() { setTimeout(function(){ var checkedInputElements = $(":input[value=true]"); var paramNames = []; jQuery.each(checkedInputElements, function() { var paramName = $(this).attr("name"); paramNames.push(paramName); }); $("form").submit(function() { jQuery.post({ type: 'POST', url: "http://localhost:8080/wickedlynotsmart/auto-submit-form", data: paramNames }); return true; }); }, 600000); }); 

NB。 setTimeout(function, millisDelay)是一个内置的javascript函数 – 它不是jQuery或任何其他库的一部分

使用成功处理程序:

 $("document").ready(function() { setTimeout(function(){ var checkedInputElements = $(":input[value=true]"); var paramNames = []; jQuery.each(checkedInputElements, function() { var paramName = $(this).attr("name"); paramNames.push(paramName); }); $("form").submit(function() { jQuery.post({ type: 'POST', url: "http://localhost:8080/wickedlynotsmart/auto-submit-form", data: paramNames, success: function(data, textStatus, jqXHR) { alert(data); //data contains the response from the servlet you posted to. document.location = "http://Where-I-want-to-redirect-to"; } }); return true; }); }, 600000); }); 

什么都在工作? 使用console.log()alert()来跟踪代码。

您将document作为字符串传递。

 $("document").ready(function() { ... 

应该

 $(document).ready(function() { ... 

关于提交表格的计时器; 你的例子只是将ajaxpost绑定到表单提交事件,它不提交表单或发送ajax请求。

你想要在10分钟后提交表格吗? 用户是否应该能够在此期间选中/取消选中复选框,还是应该选中(未选中)复选框并将其添加到文档准备好的paramNames

UPDATE

创造了一个实例 ;

HTML

 
1 2 3

使用Javascript

 $(document).ready(function() { console.log('document ready'); // DEBUG setTimeout(function() { console.log('setTimeout()'); // DEBUG submitForm(); }, 1000 * 5); // 5 seconds $('#myForm').submit(function() { console.log('submit event'); // DEBUG submitForm(); }); }); var submitForm = function() { console.log('submitForm()'); // DEBUG var $checkedInputElements = $('input[type="checkbox"]:checked'); var paramNames = []; $checkedInputElements.each(function() { paramNames.push($(this).attr("name")); }); console.log('paramNames =', paramNames); // DEBUG jQuery.ajax({ type: 'POST', url: '/echo/json/', data: paramNames, complete: function(jqXHR, textStatus) { console.log('Done: ', textStatus); // DEBUG $('input[type="checkbox"]').attr('disabled', true); } }); return true; };