Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2013, 14:43
Avatar de Pypel
Pypel
 
Fecha de Ingreso: marzo-2011
Ubicación: Rancagua, Chile
Mensajes: 11
Antigüedad: 14 años
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.