Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/02/2013, 10:06
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 8 meses
Puntos: 1567
Respuesta: valor NaN devuelto por js

Cita:
Iniciado por faseb Ver Mensaje
este es el script el cual multiplica

<script>
function calcula(){
var cantidad = document.getElementById('CANTIDAD').value;
var precio = document.getElementById('PRECIO').innerHTML;
var decimal = parseFloat('precio');
var subtotal = cantidad_decimal * decimal
document.getElementById('SUBTOTAL').value = subtotal
}

</script>


ak la parte q envia al script

<td><div id="PRECIO" onKeyPress="calcula(this.value);"></div></td>// ak recibo el valor desde ajax
<td>&nbsp;</td>
<td><input type="text" name="CANTIDAD" id="CANTIDAD" value="" onChange="calcula()"></td>
<td>&nbsp;</td>
<td><input type="number" name="SUBTOTAL" id="SUBTOTAL" value=""></td>

si necesitas algo mas pedime. los valores q tengo son 4.00 , 5.99 , 10.50
tenés una gran confusión
esto
onKeyPress="calcula(this.value)"
en un div no se ejecuta

los parseFloat tenés que hacércelos a los valores (del div id="PRECIO" y el input id="CANTIDAD"), pero como estos valores los estás poniendo en sendas variables, el parseFLoat en definitiva se hace a las variables, que son cantidad y precio, sin las comillas !!! El parámetro operacion carece de sentido, al menos en lo que proponés
El evento a utilizar es onkeyup para este caso, en definitiva
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. <script type="text/javascript">
  7. //<![CDATA[
  8.  
  9. function calcula(operacion){
  10. var cantidad = document.getElementById('CANTIDAD').value;
  11. var cantidad_decimal = parseFloat(cantidad);
  12. var precio = document.getElementById('PRECIO').innerHTML;
  13. var decimal = parseFloat(precio);
  14. var subtotal = cantidad * decimal
  15. document.getElementById('SUBTOTAL').value = subtotal
  16. }
  17.  
  18. //]]>
  19. </head>
  20. <tr>
  21. <td>
  22. <div id="PRECIO">5</div>
  23. </td>
  24. <td>&nbsp;</td>
  25. <td><input type="text" name="CANTIDAD" id="CANTIDAD" value="" onkeyup="calcula()" /></td>
  26. <td>&nbsp;</td>
  27. <td><input type="text" name="SUBTOTAL" id="SUBTOTAL" value="" /></td>
  28. </tr>
  29. </body>
  30. </html>


Te recomiendo que empieces con algún buen manual de javascript
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.