Cree un archivo llamado
procesar.js en el cual pegue todo el codigo JavaScript
// JavaScript Document
/*Inicializamos los segundos que tardara en enviarse el formulario.
NOTA: Los numeros estan en milisegundos */
var numsegundosenviar = 8000;
//Con esta variable llevaremos el control de los segundos que van transcurriendo
num = 1
function mostrarsegundos(){
//Muestra los segundos en la etiqueta <p> </p> que esta vacia en el body.
var nuevoP = document.createElement("p");
var texto = document.createTextNode("Segundos: "+ num);
nuevoP.appendChild(texto);
/*Obtiene la segunda etiqueta <p> por que es un arreglo que va de 0 a n... numeros
La etiqueta <p>Tienes 7 segundos para contestar</p> le corresponde el 0 y a la etiqueta
vacia le corresponde el 1*/
var anteriorP = document.body.getElementsByTagName("p")[1];
anteriorP.parentNode.replaceChild(nuevoP, anteriorP);
num = num + 1;
}
function enviarinfo(){
//Enviar el formulario
document.formulario.submit();
}
//Esta funcion envia el formulario, solo se ejecuta una vez con el setTimeout
setTimeout(enviarinfo, numsegundosenviar);
//Esta funcion al contrario de setTimeout se ejecuta consecutivamente.
setInterval(mostrarsegundos,1000);
El documento Html quedo asi. En la etiqueta <HEAD> </HEAD> mando a llamar el archivo JS.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Enviar formulario automaticamente</title>
<script type="text/javascript" src="procesar.js"></script>
</head>
<body>
<form method="post" action="datos.php" name="formulario">
Nombre:<br>
<input type="text" name="nom"><br>
Oficio:<br>
<input type="text" name = "oficio"><br>
<!--Notese que el TYPE es BUTTON no submit y se agrega el EVENTO onClick y manda a llamar una funcion de javascript-->
<input type="button" name="enviar" value= "Enviar respuestas" onClick="javascript: enviarinfo();">
</form>
<p>Tienes 7 segundos para contestar</p>
<!--Mostrara los segundos que van transcurriendo-->
<p> </p>
</body>
</html>
Lo probe en dos navegadores diferentes y funciona bien este codigo con el archivo separado. Correlo asi como esta para que lo pruebes.
Recuerda si agregas mas etiquetas <p></p> en el documento Html donde esta el form tienes que cambiar el index en el codigo JavaScript, recuerda que es un arreglo de etiquetas <p></p> y se cuentan de arriba a abajo empezando del 0,1,2... a "n" etiquetas para que te muestre los segundos en el documento.
Recuerda que esta variable "var numsegundosenviar = 8000" tenga un valor.
Si llegas a tener un problema espeficica el navegador que usas y si puedes mostrar el codigo del JS mejor para revisarlo.
Saludos!