Foros del Web » Programando para Internet » Javascript »

Problema con for dentro de funcion javascript

Estas en el tema de Problema con for dentro de funcion javascript en el foro de Javascript en Foros del Web. Tengo este codigo ke me lista los elementos dentro de un formulario.... <html> <head> <title>prueba</title> </head> <script> for (i=0;i<document.forms[0].elements.length;i++){ document.write(document. forms[0].elements[i].value) document.write("<br>") } </script> <body> ...
  #1 (permalink)  
Antiguo 10/02/2010, 12:10
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Pregunta Problema con for dentro de funcion javascript

Tengo este codigo ke me lista los elementos dentro de un formulario....

<html>
<head>
<title>prueba</title>
</head>
<script>
for (i=0;i<document.forms[0].elements.length;i++){
document.write(document. forms[0].elements[i].value)
document.write("<br>")
}
</script>
<body>
<form action="" method="post" name="form1" id="form1">
<p>
uno
<input type="text" name="txt" id="txt1" value="0">
</p>
<p>dos
<input type="text" name="txt" id="txt2" value="1">
</p>
<p>tres
<input type="text" name="txt" id="txt3" value="2">
</p>
<p>resultado
<input type="text" name="txt_resultado" id="txt_resultado" value="0" readonly>
</p>
</form>
</body>
</html>

Hasta aki todo bien, ahora si lo ke esta dentro del scritp lo pongo dentro de una funcion asi:

<script>
function listar(){
for (i=0;i<document.forms[0].elements.length;i++){
document.write(document. forms[0].elements[i].value)
document.write("<br>")
}
}
</script>

y obviamente la llamo dentro de uno de los eventos de cualkiera de las cajas, solo me muestra el primer elemento de los ke estan dentro del formulario, es decier el for no funciona como deberia.

Si alguien tiene alguna solucion a esta forma de hacerlo muchas gracias, otras formas de hacer lo mismo me ayudarian tambien.

Se agradeca la ayuda.
  #2 (permalink)  
Antiguo 10/02/2010, 12:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con for dentro de funcion javascript

No puedes usar document.write() después que la carga de la página ha terminado. Puedes manejar el DOM para agregar elementos (con los métodos createElement y appendChild) o usar innerHTML para insertarlo en un contenedor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/02/2010, 13:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con for dentro de funcion javascript

Pero por que si el script funciona fuera de la funcion, no lo hace dentro?????
Mas que todo esa es mi duda...
GRACIAS.
:)
  #4 (permalink)  
Antiguo 10/02/2010, 13:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con for dentro de funcion javascript

Porque si está fuera de la función se ejecuta antes de que termine la carga de la página, por lo que se puede usar document.write() para insertar contenido en el flujo del documento.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 10/02/2010, 13:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problema con for dentro de funcion javascript

:O, muchas gracias, me sirvio de mucho tu respuesta, seguire buscando alguna forma mas sencilla de realizar lo ke necesito...

Se agradece la ayuda.....

:D
  #6 (permalink)  
Antiguo 11/02/2010, 14:08
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Realmente esto es lo ke deseaba hacer

Logre hacer lo ke necesitaba.....
Espero ke a alguien le sirva este codigo......

<html>
<head>
<title>Suma cajas javascript</title>
</head>
<script>
function calcular(){
total=0;
element=document.forms[0].elements.length;
for(i=0;i<=(element-2);i++){
if(document.forms[0].elements[i].value==""){
value=0;
}else{
value=parseInt(document.forms[0].elements[i].value);
total=total+value;
//total=total+parseInt(document.forms[0].elements[i].value);
}
document.getElementById('total').value=total;
}
}
</script>
<body>
<form action="" method="get" name="form1" id="form1">
<?php
for($i=0;$i<6;$i++){
?>
Value - <input name="text" id="text" type="text" onkeyup="calcular();">
<br><br>
<?php
}
?>
<br>
Total - <input name="total" type="text" id="total">
</form>
</body>
</html>

tambien el link de referencia.....

http://www.milkzoft.com/blog/como-sumar-cajas-de-texto-en-javascript/

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:36.