Foros del Web » Programando para Internet » Javascript »

suma en dinamico

Estas en el tema de suma en dinamico en el foro de Javascript en Foros del Web. Hola Estoy tratando de ver donde esta el error, pero no puedo.... necesito sumar los valores de un formulario dinamico..... ¿me ayudan? es de la ...
  #1 (permalink)  
Antiguo 11/05/2010, 15:23
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
suma en dinamico

Hola

Estoy tratando de ver donde esta el error, pero no puedo.... necesito sumar los valores de un formulario dinamico..... ¿me ayudan? es de la columna 'fono'

aqui codigo:



Código:
<SCRIPT LANGUAGE="JavaScript">
<!--
function doAddRow(){
var table = document.getElementById('mytable')
table.insertRow(table.rows.length)
var row = table.rows[table.rows.length-1]
for(i=0;i<table.rows[0].cells.length;i++){
row.insertCell(i)
if(i==0)
row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
if(i==1)
row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
if(i==2)
row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
if(i==3)
row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" onkeyup="sumar(this.form)" />'
}
}
//-->
</SCRIPT>




<SCRIPT LANGUAGE="JavaScript">
function sumar(frm) {
  n1 = parseInt(frm.TextBox1.value);
  if (isNaN(n1)) n1 = 0;
  n2 = parseInt(frm.TextBox2.value);
  if (isNaN(n2)) n2 = 0;
  n3 = parseInt(frm.TextBox3.value);
  if (isNaN(n3)) n3 = 0;
  n4 = parseInt(frm.TextBox4.value);
  if (isNaN(n4)) n4 = 0;
  document.getElementById('suma').innerHTML = 'Total = '+ (n1 + n2 + n3 + n4);

}
</script>



<BODY>
<INPUT TYPE="button" value="AGREGAR FILA" onclick="doAddRow()">
<table id="mytable" border=1>
<TR>
<TD>NOMBRE</TD>
<TD>EMPRESA</TD>
<TD>CIUDAD</TD>
<TD>FONO</TD>
</TR>
<TR>
<TD> <input name="TextBox1" type="text" id="TextBox1" /></TD>
<TD> <input name="TextBox2" type="text" id="TextBox2" /></TD>
<TD> <input name="TextBox3" type="text" id="TextBox3" /></TD>
<TD> <input name="TextBox4" type="text" id="TextBox4"  /></TD>
</TR>
</TABLE>
<p id="suma">Total = 0</p>
</BODY>
</HTML>

por fa
  #2 (permalink)  
Antiguo 12/05/2010, 01:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: suma en dinamico

Código HTML:
Ver original
  1. <SCRIPT LANGUAGE="JavaScript">
  2. <!--
  3. var row;
  4.  
  5. function doAddRow(){
  6. var table = document.getElementById('mytable')
  7. table.insertRow(table.rows.length)
  8. row = table.rows[table.rows.length-1]
  9. for(i=0;i<table.rows[0].cells.length;i++){
  10. row.insertCell(i)
  11. if(i==0)
  12. row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
  13. if(i==1)
  14. row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
  15. if(i==2)
  16. row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
  17. if(i==3)
  18. row.cells[i].innerHTML = '<input name="fono" type="text" id="Fono[i]" onkeyup="sumar(this.form)" />'
  19. }
  20. }
  21. //-->
  22.  
  23.  
  24.  
  25.  
  26. <SCRIPT LANGUAGE="JavaScript">
  27. function sumar(frm) {
  28. suma=0;
  29. for(i=0;i<frm.elements.length;i++){
  30.     if(frm.elements[i].name="fono"){
  31.         valor=parseInt(frm.elements[i].value,10);
  32.         if(!isNaN(valor)) suma+=valor;
  33.     }
  34. }
  35.  document.getElementById('suma').innerHTML = 'Total = '+ suma;
  36.  
  37. }
  38.  
  39.  
  40.  
  41. <INPUT TYPE="button" value="AGREGAR FILA" onclick="doAddRow()">
  42. <table id="mytable" border=1>
  43. <TR>
  44. <TD>NOMBRE</TD>
  45. <TD>EMPRESA</TD>
  46. <TD>CIUDAD</TD>
  47. <TD>FONO</TD>
  48. </TR>
  49. <TR>
  50. <TD> <input name="TextBox1" type="text" id="TextBox1" /></TD>
  51. <TD> <input name="TextBox2" type="text" id="TextBox2" /></TD>
  52. <TD> <input name="TextBox3" type="text" id="TextBox3" /></TD>
  53. <TD> <input name="fono" type="text" id="TextBox4"  onkeyup="sumar(this.form)"  /></TD>
  54. </TR>
  55. </form>
  56. <p id="suma">Total = 0</p>
  57. </BODY>
  58. </HTML>

Esto serviria?

Quim
  #3 (permalink)  
Antiguo 14/05/2010, 14:03
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: suma en dinamico

sabes? lo pruebo pero no me funciona....
no se si al sacar algun numero (manualmente) habre realizado algo mal (algun espacio de mas o menos....
pero me sgue sin funcionar.
  #4 (permalink)  
Antiguo 14/05/2010, 14:05
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: suma en dinamico

de hecho aqui lo posteo de nuevo....


Cita:
<SCRIPT LANGUAGE="JavaScript">
<!--
var row;

function doAddRow(){
var table = document.getElementById('mytable')
table.insertRow(table.rows.length)
row = table.rows[table.rows.length-1]
for(i=0;i<table.rows[0].cells.length;i++){
row.insertCell(i)
if(i==0)
row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
if(i==1)
row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
if(i==2)
row.cells[i].innerHTML = '<input name="TextBox[i]" type="text" id="TextBox[i]" />'
if(i==3)
row.cells[i].innerHTML = '<input name="fono" type="text" id="Fono[i]" onkeyup="sumar(this.form)" />'
}
}
//-->
</SCRIPT>



<SCRIPT LANGUAGE="JavaScript">
function sumar(frm) {
suma=0;
for(i=0;i<frm.elements.length;i++){
if(frm.elements[i].name="fono"){
valor=parseInt(frm.elements[i].value,10);
if(!isNaN(valor)) suma+=valor;
}
}
document.getElementById('suma').innerHTML = 'Total = '+ suma;
}
</script>




<BODY>
<form>
<INPUT TYPE="button" value="AGREGAR FILA" onclick="doAddRow()">
<table id="mytable" border=1>
<TR>
<TD>NOMBRE</TD>
<TD>EMPRESA</TD>
<TD>CIUDAD</TD>
<TD>FONO</TD>
</TR>
<TR>
<TD> <input name="TextBox1" type="text" id="TextBox1" /></TD>
<TD> <input name="TextBox2" type="text" id="TextBox2" /></TD>
<TD> <input name="TextBox3" type="text" id="TextBox3" /></TD>
<TD> <input name="fono" type="text" id="TextBox4" onkeyup="sumar(this.form)" /></TD>
</TR>
</TABLE>
</form>
<p id="suma">Total = 0</p>
</BODY>
</HTML>
  #5 (permalink)  
Antiguo 19/05/2010, 15:50
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: suma en dinamico

hola


lo probe ahra sin borrar nada,,,pero tampoco me resulta ...me da un error....
tengo todo habilitado para javascript pero no resulta

que sera?

gracias

Luque
  #6 (permalink)  
Antiguo 19/05/2010, 16:07
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: suma en dinamico

supongo que te esta fallando en iexplorer. la razon, tienes conflicto con el nombre de una variable y el id de un elemento. es decir, tanto el ID como el nombre de la variable se llaman iguales: suma. tienes dos opciones: cambia el id o el nombre de la variable, o creas la variable suma de forma local con la sentencia var. te comento que tambien tienes otro problema aunque no se refleja en la consola. en la siguiente comparacion estas asignando el valor "fono" a la propiedad name el cual siempre la condicion te resultara como cierto, supongo que aqui quisistes comparar...
Código:
if(frm.elements[i].name="fono"){
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 19/05/2010, 18:54
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: suma en dinamico

tienes razon
ahora me resulto...

tanto barajar el naipe...despues uno ya no ve nada....

en lo referido a la ultima situacion no entendi....lo de la comparacion...

?

que te refieres con eso?
habria que cmabiar el name por el id?

Gracias
  #8 (permalink)  
Antiguo 19/05/2010, 19:21
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: suma en dinamico

me refiero que estas usando el operador incorrecto. estas usando el operador asignar (=) en lugar de el operador de comparacion igualdad (==). porque si no, al final estas asignandole a todos los campos el nombre "fono". dudo que eso es lo que quieras hacer.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 20/05/2010, 13:50
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: suma en dinamico

ok gracias
me queda muy claro
tema cerrado
y en serio gracias.

En otra cosa... veo que conoces de forma clara el lenguaje....por cierto ¿no sabras de algun libro claro que hable en forma sintetica la transformacion del lenguaje verbal a lenguaje matematico? Frecuentemente veo que por temas de interpretacion es dificil llevar un problema de la vida real a una ecuacion matemtica, debido a que para la palabra 'agregar' hay 3 operaciones, como minimo (ej: sumar, potencia, multiplicacion).... ¿sabras algo de eso..?...
gracias
  #10 (permalink)  
Antiguo 20/05/2010, 14:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: suma en dinamico

en cuanto a la peticion, la verdad no te tengo respuesta. quizas ni siquiera estoy entiendo lo que quieres decir. lo que me haces entender es como un pseudo lenguaje de la expresion verbal a codigos. en lo personal, lo cierto es que nunca me he leido algun manual o libro de tal tema. me parece a mi, que mas bien aqui entra en juego la experiencia en la educacion primaria donde habia que resolver problemas matematicos a base de relatos. espero haberte entendido...
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 20/05/2010, 16:17
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: suma en dinamico

Si. efectivamente es eso a lo que me referia: al planteamiento de ecuaciones (casi siempre resulta ser interpretativo el planteamiento...).

Bueno...gracias de todos modos.

Etiquetas: dinamico, suma
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 16:40.