Foros del Web » Programando para Internet » Javascript »

Funcion de suma de campos de texto que no anda en Explorer

Estas en el tema de Funcion de suma de campos de texto que no anda en Explorer en el foro de Javascript en Foros del Web. Tengo esta funcion: function calcular(cual) { caja=document.forms["sumar"].elements; subtotal=Number(caja["subtotal"+cual].value); cantidad=Number(caja["cantidad"+cual].value); lista=Number(caja["lista"+cual].value); dcto=Number(caja["descuento"+cual].value)/100; total_unitario=lista-(lista*dcto); total_final=total_unitario*cantidad; total_unitario=total_unitario.toFixed(2); caja["subtotal"+cual].value=total_unitario; total_final=total_final.toFixed(2); caja["total"+cual].value=total_final; } ...ademas de otras similares, lo que hago ...
  #1 (permalink)  
Antiguo 19/01/2013, 08:12
Avatar de sergiolimo.  
Fecha de Ingreso: julio-2006
Ubicación: Yakarta
Mensajes: 73
Antigüedad: 17 años, 9 meses
Puntos: 1
Funcion de suma de campos de texto que no anda en Explorer

Tengo esta funcion:

function calcular(cual)
{
caja=document.forms["sumar"].elements;
subtotal=Number(caja["subtotal"+cual].value);
cantidad=Number(caja["cantidad"+cual].value);
lista=Number(caja["lista"+cual].value);
dcto=Number(caja["descuento"+cual].value)/100;

total_unitario=lista-(lista*dcto);
total_final=total_unitario*cantidad;

total_unitario=total_unitario.toFixed(2);
caja["subtotal"+cual].value=total_unitario;
total_final=total_final.toFixed(2);
caja["total"+cual].value=total_final;

}

...ademas de otras similares, lo que hago con ella es tomar diferentes campos de un formulario y hacer calculos con ellos, cada campo va teniendo el nombre cantidad1, cantidad2, etc ya que su cantidad es variable y con php armo los nombres. Tanto en Firefox como en Safari y Chrome va perfecto, pero en Explorer 9 no hace nada de nada, ni siquiera en vista de compatibilidad, y probado en 2 pc diferentes. No soy experto en javascript, por lo que no se hacerlo de otra manera, apenas si lo logre de ésta, es que uso algo obsoleto en el codigo que ya no es standard en los nuevos navegadores? como deberia modificarlo? gracias!
__________________
Una mujer en bicicleta, con sombrero de paja, es la mas flagrante violación a las leyes de la aerodinámica

Corralon de materiales
  #2 (permalink)  
Antiguo 19/01/2013, 11:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Funcion de suma de campos de texto que no anda en Explorer

En casos así debés mostrar el html y como estás llamando la función, si no se transforma en una adivinanza.

Esto te funciona en cualquier navegador, incluso IE8/IE7

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. function calcular(cual){
  10. var caja=document.forms["sumar"].elements;
  11. var cantidad = Number(caja['cantidad'+cual].value);
  12. var precio = Number(caja['precio'+cual].value);
  13. var total = cantidad*precio;
  14. if(isNaN(total)){alert('error');}else{alert(total);}
  15. }
  16. //]]>
  17.  
  18. </head>
  19. <form name="sumar" action="#">
  20. Cantidad A <input type="text" value="" name="cantidad1"/><br />
  21. Precio A <input type="text" value="" name="precio1"/><br />
  22. Cantidad B <input type="text" value="" name="cantidad2"/><br />
  23. Precio B <input type="text" value="" name="precio2"/><br />
  24. <input type="button" onclick="calcular('1');" value="A1xA2" /><br />
  25. <input type="button" onclick="calcular('2');" value="B1xB2" /><br />
  26. </from>
  27. </body>
  28. </html>

Pero como te dije, estoy adivinando
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 29/01/2013, 13:42
Avatar de sergiolimo.  
Fecha de Ingreso: julio-2006
Ubicación: Yakarta
Mensajes: 73
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Funcion de suma de campos de texto que no anda en Explorer

Muchas gracias emprear, estuve de viaje y recien ahora estoy probando lo que me aconsejas, el html donde lo llama es

echo '<td width=40><input style="text-align: right" type="text" name="subtotal'.$zx.'" id="subtotal'.$zx.'" value="'.$lista_precio_decimales.'" onkeyup="calcular('.$zx.'); sumat('.$_SESSION["opedido"]->cuantos_productos_pedido.');" readonly="readonly" style="border:0" onkeypress="return pulsar(event)" size="8" maxlength="8" /></td>';

donde $zx es una variable que va aumentando 1 cada vez, ahora mismo hare las modificaciones
__________________
Una mujer en bicicleta, con sombrero de paja, es la mas flagrante violación a las leyes de la aerodinámica

Corralon de materiales

Etiquetas: anda, campos, explorer, formulario, funcion, php, 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 23:37.