Foros del Web » Programando para Internet » Javascript »

Como Insertar Valor en variable dinamica

Estas en el tema de Como Insertar Valor en variable dinamica en el foro de Javascript en Foros del Web. Hola tengo el siguiente problema, a traves de codigo genero textbox dinamicos pero necesito que se realicen calculos dentro de esos mismos campos dinamicos pero ...
  #1 (permalink)  
Antiguo 09/01/2013, 14:43
Avatar de Pypel  
Fecha de Ingreso: marzo-2011
Ubicación: Rancagua, Chile
Mensajes: 11
Antigüedad: 13 años, 1 mes
Puntos: 0
Como Insertar Valor en variable dinamica

Hola tengo el siguiente problema, a traves de codigo genero textbox dinamicos pero necesito que se realicen calculos dentro de esos mismos campos dinamicos pero nose como decirle que realice los calculos en dichos campos dinamicos.

Este es el codigo

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. <!--
  3. num=0;
  4. function crear(obj) {
  5. num++;
  6. fi = document.getElementById('fiel'); // 1
  7. contenedor = document.createElement('div'); // 2
  8. contenedor.id = 'div'+num; // 3
  9.  
  10. fi.appendChild(contenedor); // 4
  11.  
  12. ele = document.createElement('input'); // 5
  13. ele2 = document.createElement('input'); // 5
  14. ele3 = document.createElement('input'); // 5
  15. ele4 = document.createElement('input'); // 5
  16. ele5 = document.createElement('input'); // 5
  17. ele6 = document.createElement('input'); // 5
  18. ele7 = document.createElement('input'); // 5
  19.  
  20. ele.type = 'text'; // 6
  21. ele.name = 'item[]'; // 6
  22. ele.size = 5;
  23. contenedor.appendChild(ele); // 7
  24.  
  25. ele2.type = 'text'; // 6
  26. ele2.name = 'cant[]'; // 6
  27. ele2.value = '1'
  28. ele2.size = 5;
  29. contenedor.appendChild(ele2); // 7
  30.  
  31. ele3.type = 'text'; // 6
  32. ele3.name = 'detalle[]'; // 6
  33. ele3.size = 80;
  34. contenedor.appendChild(ele3); // 7
  35.  
  36. ele4.type = 'text'; // 6
  37. ele4.name = 'valor[]'; // 6
  38. ele4.size = 6;
  39. ele4.onkeyup = function(){setTotal(this.value)}
  40. //ele4.onfocus = function(){setHiddenNeto(this.value)}
  41. contenedor.appendChild(ele4); // 7
  42.  
  43. ele5.type = 'text'; // 6
  44. ele5.name = 'desc[]'; // 6
  45. ele5.size = 6;
  46. //ele5.onkeyup = function(){addHiddenNeto(this.value)}
  47. //ele5.onfocus = function(){setHiddenNeto(this.value)}
  48. contenedor.appendChild(ele5); // 7
  49.  
  50. ele6.type = 'text'; // 6
  51. ele6.name = 'total[]'; // 6
  52. ele6.size = 8;
  53. ele6.onkeyup = function(){addHiddenNeto(this.value)}
  54. ele6.onfocus = function(){setHiddenNeto(this.value)}
  55. contenedor.appendChild(ele6); // 7
  56.  
  57. ele7.type = 'button'; // 6
  58. ele7.value = 'Borrar'; // 8
  59. ele7.name = 'div'+num; // 8
  60. ele7.id = num;
  61. ele7.onclick = function () {borrar(this.name, this.parentNode)} // 9
  62. contenedor.appendChild(ele7); // 7
  63. }
  64.  
  65. function borrar(obj, getP) {
  66. P = getP.childNodes[2].value;
  67. if(P == ""){P = 0;}
  68. document.form1.neto.value = parseFloat(document.form1.neto.value)-parseFloat(P);
  69. fi = document.getElementById('fiel'); // 1
  70. fi.removeChild(document.getElementById(obj)); // 10
  71. setNeto();
  72. }
  73.  
  74. function addHiddenNeto(n){
  75. if(n==""){n=0;}
  76. document.form1.neto.value = document.form1.neto.value-document.form1.hiddenNeto.value;
  77. document.form1.hiddenNeto.value = n;
  78. document.form1.neto.value = roundNumber(eval(parseFloat(document.form1.neto.value)+parseFloat(document.form1.hiddenNeto.value)),2);
  79. setNeto();
  80. }
  81. function setHiddenNeto(n){
  82. if(n==""){n=0;}
  83. document.form1.hiddenNeto.value = n;
  84. setNeto();
  85. }
  86. function setNeto(){
  87. if(document.form1.descuento.value == ""){document.form1.descuento.value = 0;}
  88. if(document.form1.descuento.value != 0){
  89. document.form1.tsi.value = (parseFloat(document.form1.neto.value)*parseFloat(1-(document.form1.descuento.value/100)));
  90. }else{
  91. document.form1.tsi.value = (document.form1.neto.value);
  92. }
  93. //Se tiene que calcular por 0.19 ya que la matematica para 19% es esa.
  94. document.form1.tci.value = roundNumber(parseFloat(document.form1.tsi.value)+(parseFloat(0.19) * parseFloat(document.form1.tsi.value)),0);
  95. }
  96. function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  97. return Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  98. }
  99. -->
  100. </script>

entonces lo que necesito es que en el textbox "total" que se genera por codigo se realice el calculo de (cant*precio)-desc de la linea generada.

  #2 (permalink)  
Antiguo 09/01/2013, 15:00
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: Como Insertar Valor en variable dinamica

por ejemplo si quisieras sumar el contenido de todos los textbox , podrias agregarles un id incrementable al caso que queden de la siguiente forma

Cita:
<input type="text" id="mitext_1">
<input type="text" id="mitext_2">
<input type="text" id="mitext_3">
hacer una funcion que recorra los inputs por ejemplo
Cita:
function sumar()
{
var suma=0;
for(i=1;i<=document.getElementsByTagName("input"). length;i++)
{
suma=suma+ document.getElementByID('mitext_'+i).value;
}
alert(suma);
}
y llamarlo

Cita:
<input type="button" onclick="sumar()">
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 09/01/2013, 15:04
Avatar de Pypel  
Fecha de Ingreso: marzo-2011
Ubicación: Rancagua, Chile
Mensajes: 11
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como Insertar Valor en variable dinamica

el gran problema es que los textbox se generan con el boton "agregar item" y se generan como una array entonces nose como decirle que haga el calculo en la array de su misma linea =/
  #4 (permalink)  
Antiguo 10/01/2013, 08:13
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: Como Insertar Valor en variable dinamica

modificando un poco tu codigo
Cita:
<script type="text/javascript">
<!--
num=0;
function crear(obj) {
num++;
fi = document.getElementById('fiel'); // 1
contenedor = document.createElement('div'); // 2
contenedor.id = 'div'+num; // 3

fi.appendChild(contenedor); // 4

ele = document.createElement('input'); // 5
ele2 = document.createElement('input'); // 5
ele3 = document.createElement('input'); // 5
ele4 = document.createElement('input'); // 5
ele5 = document.createElement('input'); // 5
ele6 = document.createElement('input'); // 5
ele7 = document.createElement('input'); // 5

ele.type = 'text'; // 6
ele.name = 'item[]'; // 6
ele.size = 5;
ele.id='text_1_'+num;//AGREGAR ID AL 1ER ELEMENTO
contenedor.appendChild(ele); // 7

ele2.type = 'text'; // 6
ele2.name = 'cant[]'; // 6
ele2.value = '1';
ele2.id='text_2_'+num;//AGREGAR ID AL 2DO ELEMENTO
ele2.size = 5;
contenedor.appendChild(ele2); // 7

ele3.type = 'text'; // 6
ele3.name = 'detalle[]'; // 6
ele3.id='text_3_'+num;//AGREGAR ID AL 3ER ELEMENTO
ele3.size = 80;
contenedor.appendChild(ele3); // 7

ele4.type = 'text'; // 6
ele4.name = 'valor[]'; // 6
ele4.id='text_4_'+num;//AGREGAR ID AL 4TO ELEMENTO
ele4.size = 6;
ele4.onkeyup = function(){setTotal(this.value)}
//ele4.onfocus = function(){setHiddenNeto(this.value)}
contenedor.appendChild(ele4); // 7

ele5.type = 'text'; // 6
ele5.name = 'desc[]'; // 6
ele5.id='text_5_'+num;//AGREGAR ID AL 5TO ELEMENTO
ele5.size = 6;
//ele5.onkeyup = function(){addHiddenNeto(this.value)}
//ele5.onfocus = function(){setHiddenNeto(this.value)}
contenedor.appendChild(ele5); // 7

ele6.type = 'text'; // 6
ele6.name = 'total[]'; // 6
ele6.id='text_6_'+num;///AGREGAR ID AL BOTON
ele6.size = 8;
ele6.onkeyup = function(){addHiddenNeto(this.value)}
ele6.onfocus = function(){setHiddenNeto(this.value)}
contenedor.appendChild(ele6); // 7

ele7.type = 'button'; // 6
ele7.value = 'Sumar'; // 8
ele7.name = 'div'+num; // 8
ele7.id = num;
ele7.onclick = function (){ sumar(num);}; // 9///AGREGAR LA FUNCION
contenedor.appendChild(ele7); // 7
}

///////NUEVO INICIA///////////
function sumar(id)
{
var suma=0;
for(var i=1;i<=5;i++)
{
var elementoS=document.getElementById('text_'+i+'_'+id ).value;
suma=parseFloat(suma) + parseFloat(elementoS);
}
document.getElementById('text_6_'+id).value=suma;//caja donde colocaras el resultado
}
///////////NUEVO TERMINA/////////
function borrar(obj, getP) {
P = getP.childNodes[2].value;
if(P == ""){P = 0;}
document.form1.neto.value = parseFloat(document.form1.neto.value)-parseFloat(P);
fi = document.getElementById('fiel'); // 1
fi.removeChild(document.getElementById(obj)); // 10
setNeto();
}

function addHiddenNeto(n){
if(n==""){n=0;}
document.form1.neto.value = document.form1.neto.value-document.form1.hiddenNeto.value;
document.form1.hiddenNeto.value = n;
document.form1.neto.value = roundNumber(eval(parseFloat(document.form1.neto.va lue)+parseFloat(document.form1.hiddenNeto.value)), 2);
setNeto();
}
function setHiddenNeto(n){
if(n==""){n=0;}
document.form1.hiddenNeto.value = n;
setNeto();
}
function setNeto(){
if(document.form1.descuento.value == ""){document.form1.descuento.value = 0;}
if(document.form1.descuento.value != 0){
document.form1.tsi.value = (parseFloat(document.form1.neto.value)*parseFloat( 1-(document.form1.descuento.value/100)));
}else{
document.form1.tsi.value = (document.form1.neto.value);
}
//Se tiene que calcular por 0.19 ya que la matematica para 19% es esa.
document.form1.tci.value = roundNumber(parseFloat(document.form1.tsi.value)+( parseFloat(0.19) * parseFloat(document.form1.tsi.value)),0);
}
function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
return Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
}
-->
</script>
<div id="fiel"></div>
<input type="button" onClick="crear()">
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”

Etiquetas: dinamica, input, variables
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 05:41.