Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: mapers en 27 Agosto 2016, 14:35 pm



Título: randon javascript
Publicado por: mapers en 27 Agosto 2016, 14:35 pm
Buenas quisiera saber porque no sale visualiza en la caja de texto todos los randon de la funcion.

Código:
<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>


Título: Re: randon javascript
Publicado por: #!drvy en 29 Agosto 2016, 09:13 am
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
  1. function valo(timeBetween){
  2.  
  3.    var realBetween = timeBetween;
  4.  
  5.    for(var i=0; i<10; i++){
  6.  
  7.        setTimeout(
  8.            function(){ document.getElementById("nombre").value = Math.random(); },
  9.            timeBetween
  10.        );
  11.  
  12.        timeBetween = timeBetween+realBetween;
  13.    }
  14. }


Código
  1. <input onclick="valo(500)" value="averiguar" type="button">

Saludos