Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] monto total de pago de cuenta en java script

Estas en el tema de monto total de pago de cuenta en java script en el foro de Java en Foros del Web. Hola amigos una consulta estoy realizando un formulario con sumas dinámicas en java script , la suma dinamica me funciona, pero mi problema es el ...
  #1 (permalink)  
Antiguo 28/03/2014, 21:19
 
Fecha de Ingreso: abril-2012
Ubicación: chile
Mensajes: 33
Antigüedad: 7 años, 10 meses
Puntos: 0
monto total de pago de cuenta en java script

Hola amigos una consulta estoy realizando un formulario con sumas dinámicas en java script , la suma dinamica me funciona, pero mi problema es el siguiente, quiero que la suma total me la reste con la cantidad de dinero que estoy cancelando.

1. compro 3 productos que valen 3 mil, me muestra la suma total

2 pago con un billete de 10.000 mil, debería mostrarme lo que me sobra como vuelto


eso es lo que quiero realmente:

a qui le muestro mi codigo ojala puedan ayudarme gracias..


Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>




<head>
<title></title>

<script>
function sumar() {
var pago = parseInt(document.insertar.p.value);	
var n1 = parseInt(document.insertar.numero1.value);
var n2 = parseInt(document.insertar.numero2.value);
var n3 = parseInt(document.insertar.numero3.value);

document.insertar.TOTAL.value=n1+n2+n3;
document.insertar.p.value=pago-TOTAL;
}
</script>
</head>

<body>

<form id="insertar" name="insertar" method="post" action="">
<table width="200" border="1">
  <tr>
    <th scope="col">Ingrese cantidad con que paga<input type="text" name="pago" id="pago" size="20"><br /></th>
  </tr>
  <tr>
    <th scope="row">precio1<input type="text" name="numero1" id="num1" size="20" onChange="sumar()"><br /></th>
  </tr>
  <tr>
    <th scope="row">precio2<input type="text" name="numero2" id="num2" size="20" onChange="sumar()"><br /></th>
  </tr>
  <tr>
    <th scope="row">precio3<input type="text" name="numero3" id="num3" size="20" onChange="sumar()"><br /></th>
  </tr>
  <tr>
    <th scope="row">Total<input type="text" name="TOTAL" id="TOTAL" size="20"></th>
  </tr>
  <tr>
    <th scope="row">vuelto<input type="text" name="p" id="p" size="20"></th>
  </tr>
</table>


</p>
<input type="submit" name="Submit" value="Insertar Registro" />
<input type="hidden" name="action" value="add" />
</form>






</body>
</html> 

Última edición por cardf; 28/03/2014 a las 21:34
  #2 (permalink)  
Antiguo 30/03/2014, 00:01
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 13 años, 1 mes
Puntos: 21
Respuesta: monto total de pago de cuenta en java script

hola cardf.... en primer.. lugar...

esto no va en este foro.. ya que no es.. java... sino javascript y es otro lenguaje totalmente diferente... pero yo no soy el encargado de moverlo..

en cuanto a tu codigo.. al restar ... la variable TOTAL no existe... lo que te quedaria algo asi...

Código:
function sumar() {
var pago = parseInt(document.insertar.pago.value);	
var n1 = parseInt(document.insertar.numero1.value);
var n2 = parseInt(document.insertar.numero2.value);
var n3 = parseInt(document.insertar.numero3.value);

var importe=n1+n2+n3;

document.insertar.TOTAL.value=importe;
document.insertar.p.value=pago-importe;
}
luego tenes que ver las validaciones.. que no se NaN... osea que tome los vacios como cero... y los redondeos.. podes usar toFixed...

pero.. yo.. y esto es una apreciacion personal.. te diria que trabajes con
document.getElementById()...

y tambien cambiaria el evento.. a onkeyup.. o bien a onblur..

lo cual te daria algo asi...

Código:
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        
        <script>
function sumar() {
pago = document.getElementById('pago').value;	
n1 = document.getElementById('num1').value;
n2 = document.getElementById('num2').value;
n3 = document.getElementById('num3').value;



n1=(n1=='')?0:parseFloat(n1);
n2=(n2=='')?0:parseFloat(n2);
n3=(n3=='')?0:parseFloat(n3);


importe=n1+n2+n3;
importe.toFixed(2);

vuelto=(pago!=0 && pago!='')?parseFloat(pago)-parseFloat(importe):0;
vuelto.toFixed(2);

document.getElementById('TOTAL').value=importe;
document.getElementById('p').value=vuelto;
}
</script>
        
    </head>
    <body>
        
        
        
<form id="insertar" name="insertar" method="post" action="">
<table width="200" border="1">
  <tr>
    <th scope="col">Ingrese cantidad con que paga<input type="text" name="pago" id="pago" onkeyup="sumar()" size="20"><br /></th>
  </tr>
  <tr>
    <th scope="row">precio1<input type="text" name="numero1" id="num1" size="20" onkeyup="sumar()"><br /></th>
  </tr>
  <tr>
    <th scope="row">precio2<input type="text" name="numero2" id="num2" size="20" onkeyup="sumar()"><br /></th>
  </tr>
  <tr>
    <th scope="row">precio3<input type="text" name="numero3" id="num3" size="20" onkeyup="sumar()"><br /></th>
  </tr>
  <tr>
    <th scope="row">Total<input type="text" name="TOTAL" id="TOTAL" size="20"></th>
  </tr>
  <tr>
    <th scope="row">vuelto<input type="text" name="p" id="p" size="20"></th>
  </tr>
</table>


</p>
<input type="submit" name="Submit" value="Insertar Registro" />
<input type="hidden" name="action" value="add" />
</form>
        
        
        
    </body>
</html>
espero que te halla servido... saludos.
  #3 (permalink)  
Antiguo 30/03/2014, 11:40
 
Fecha de Ingreso: abril-2012
Ubicación: chile
Mensajes: 33
Antigüedad: 7 años, 10 meses
Puntos: 0
Respuesta: monto total de pago de cuenta en java script

Amigo eres un maestro muchas gracias resulto muy bien y mucho mas con el segundo código muchas gracias.
  #4 (permalink)  
Antiguo 31/03/2014, 09:14
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 13 años, 1 mes
Puntos: 21
Respuesta: monto total de pago de cuenta en java script

me alegra mucho haberte ayudado.. de maestro estoy lejos.. solo me renegue mucho con js.. jejeje.. igual gracias. por el cumplido..

Etiquetas: html, monto, pago
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 09:06.