Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GuilhermeML

[Resolvido] Dar submit em form após um determinado tempo

Recommended Posts

Olá, pessoal.

 

Estou desenvolvendo uma aplicação web que tenha um formulário com tempo máximo de resposta (p. ex 5 min), quando a página tiver 5 minutos de visualização, ela deve dar um submit automaticamente.

 

Para tanto fui buscar um script de relógio e tentei adaptá-lo, mas não funcionou, segue o que tentei fazer:

<form name="crono">
<input type="text" size="7" name="face" title="Cronometro"/>
<script language="JavaScript">
<!-- 
var timeCrono; 
var hor = 0;
var min = 0;
var seg = 0;
var startTime = new Date(); 
var start = startTime.getSeconds();
StartCrono();

if (min > 5) {
window.document.Teste.submit();
}


function StartCrono() {
if (seg + 1 > 59) { 
min+= 1;
}
if (min > 59) {
min = 0;
hor+= 1;
}


var time = new Date(); 
if (time.getSeconds() >= start) {
seg = time.getSeconds() - start;
} 
else {
seg = 60 + (time.getSeconds() - start);
}
timeCrono= (hor < 10) ? "0" + hor : hor;
timeCrono+= ((min < 10) ? ":0" : ":") + min;
timeCrono+= ((seg < 10) ? ":0" : ":") + seg;
document.crono.face.value = timeCrono;
setTimeout("StartCrono()",1000);
} //--> 
</script>
		
</form>

O código funciona (mostra um relógio na página) mas a minha instrução

if (min > 5) {
window.document.Teste.submit();
}

Não está funcionando. O que estou fazendo errado?

 

Muito obrigado!

 

Guilherme Louzada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pessoal.

 

Estou desenvolvendo uma aplicação web que tenha um formulário com tempo máximo de resposta (p. ex 5 min), quando a página tiver 5 minutos de visualização, ela deve dar um submit automaticamente.

 

Para tanto fui buscar um script de relógio e tentei adaptá-lo, mas não funcionou, segue o que tentei fazer:

<form name="crono">
<input type="text" size="7" name="face" title="Cronometro"/>
<script language="JavaScript">
<!-- 
var timeCrono; 
var hor = 0;
var min = 0;
var seg = 0;
var startTime = new Date(); 
var start = startTime.getSeconds();
StartCrono();

if (min > 5) {
window.document.Teste.submit();
}


function StartCrono() {
if (seg + 1 > 59) { 
min+= 1;
}
if (min > 59) {
min = 0;
hor+= 1;
}


var time = new Date(); 
if (time.getSeconds() >= start) {
seg = time.getSeconds() - start;
} 
else {
seg = 60 + (time.getSeconds() - start);
}
timeCrono= (hor < 10) ? "0" + hor : hor;
timeCrono+= ((min < 10) ? ":0" : ":") + min;
timeCrono+= ((seg < 10) ? ":0" : ":") + seg;
document.crono.face.value = timeCrono;
setTimeout("StartCrono()",1000);
} //--> 
</script>
		
</form>

O código funciona (mostra um relógio na página) mas a minha instrução

if (min > 5) {
window.document.Teste.submit();
}

Não está funcionando. O que estou fazendo errado?

 

Muito obrigado!

 

Guilherme Louzada

Consegui resolver!

 

Movi a instrução mais pro fim do código:

[...]

else {
seg = 60 + (time.getSeconds() - start);
}

if (min > 0) {
window.document.Teste.submit();
}

timeCrono= (hor < 10) ? "0" + hor : hor;

[...]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.