randon javascript

Iniciado por mapers, 27 Agosto 2016, 14:35 PM

0 Miembros y 1 Visitante están viendo este tema.

mapers

Buenas quisiera saber porque no sale visualiza en la caja de texto todos los randon de la funcion.


<html><head>

<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>prueba</title>


</head><body>
<script type="text/javascript">
function valo(){

for(var i=0;i<10;i++){

setTimeout(document.getElementById("nombre").value = Math.random(),500);

}



}



</script>
<form method="post" action="prueba.html" name="prueba"><input id="nombre" name="nombre"> Nombre<br>
<input onclick="valo()" value="averiguar" type="button">
</form>

<br>

<br>

</body></html>

#!drvy

Tienes un problema de logica. Le estas diciendo que haga diez repeticiones y que en cada una de ellas haga un setTimeout en 500ms. Es decir, todos los setTimeout se ejecutaran a los 500ms (a la vez) por tanto solo lograras ver el ultimo valor.

Tienes que aumentar progresivamente el tiempo del setTimeout con cada repeticion.

Código (javascript) [Seleccionar]
function valo(timeBetween){

   var realBetween = timeBetween;

   for(var i=0; i<10; i++){

       setTimeout(
           function(){ document.getElementById("nombre").value = Math.random(); },
           timeBetween
       );

       timeBetween = timeBetween+realBetween;
   }
}



Código (html5) [Seleccionar]
<input onclick="valo(500)" value="averiguar" type="button">

Saludos