JavaScript - script para calcular cuotas no despliega resultado

 
Vista:

script para calcular cuotas no despliega resultado

Publicado por Manu (4 intervenciones) el 01/02/2016 19:44:45
Buenas tengo este script pero no entiendo porqué no despliega el resultado, realmente soy nuevo en javascript y estoy aprendiendo, les agradecería se me ayudan a saber el motivo de que el resultado no se despliega. Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<HTML>
<BODY>
<script type="text/javascript">
 
$('input[type=button]').on ('click', function () {
    var totalAmount = $('#amount').val(); // Cantidad a pagar -> 1200
    var feeType     = $('#typefee option:selected').val()  || 24; // En cuantos meses, 6, 12, 24. Por defecto 24
    var tax         = 0.05; //Impuesto
 
    var totalAlreadyPay = $('#amountPayed').val() || 0; // Lo que ya se ha pagado -> 200
 
    if ((totalAmount && totalAmount > 0) || totalAlreadyPay > 0) {
        // En caso de haber pagado ya alguna parte
        totalAmount      = totalAmount - totalAlreadyPay
    }
 
 
    // Total a pagar al mes en función del tipo de cuota: 6, 12, 24 meses
    var totalToPay = 0;
    totalToPay = (totalAmount / feeType) + (totalAmount / feeType) * tax;
 
    return totalToPay;
 
});
</script>
<input type="text" id="amount">
<input type="text" id="amountPayed">
<select id="typefee">
    <option value="6">6 meses</option>
    <option value="12">12 meses</option>
    <option value="24">24 meses</option>
</select>
<input type="button" value="Calcular">
 
 
 
 
</BODY>
</HTML>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

script para calcular cuotas no despliega resultado

Publicado por xve (2100 intervenciones) el 01/02/2016 20:13:36
Hola Manu, te falta cargar la libreria jquery...
en la cabecera de tu pagina te falta colocar algo como:
1
2
3
4
5
6
7
8
<html>
<head>
	<meta charset="utf-8">
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>
</head>
 
<body>
...

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

script para calcular cuotas no despliega resultado

Publicado por Vainas (258 intervenciones) el 01/02/2016 20:28:43
Buenas:

¿Vienes de algun otro lenguaje? Lo digo por que tienes cosas que sabes hacer pero no estan bien en js. Por ejemplo:

1
var totalAmount = $('#amount').val();

No es un puntero sino que guardas el valor que obtienes de el input y nada mas. Asi que no esperes a que el input se refresque sin mas. Tendras que cambiarlo (siempre y cuando quieras refrescar ese input claro) de este modo:

1
2
3
4
5
if ((totalAmount && totalAmount > 0) || totalAlreadyPay > 0) {
    // En caso de haber pagado ya alguna parte
    totalAmount      = totalAmount - totalAlreadyPay
}
$('#amount').val(totalAmount);

Por otra parte solo intentas regresar el valor con

1
return totalToPay;

pero el boton no necesita que le regreses el dato, lo que tienes que hacer como te he puesto en el anterior es volver a seleccionar donde quieres dejar el valor y pasarselo. Pongamos que te creas un div para dejar el valor:

1
2
3
...
<input type="button" value="Calcular">
<div id="totalamount"></div>

asi que tendras que poner en vez de return esto:

1
$('#totalamount').html(totalAmount);

Una cosa mas, en javascript el simbolo dolar "$()" me esta indicando que no es javascript sino alguna libreria, puede ser jQuery entre las mas usadas. Tendras que cargarla al principio de tu html.

Espero que sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

script para calcular cuotas no despliega resultado

Publicado por manu (4 intervenciones) el 01/02/2016 20:32:41
Si vengo de php! muy poco domino javascript estoy incursionando el problema es que tenía esta función en php y se refrescaba la página, ya que entiendo que se ejecuta del lado del servidor: http://ceccanaan.org/interna/interna2.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

script para calcular cuotas no despliega resultado

Publicado por manu (4 intervenciones) el 01/02/2016 21:39:18
No me arroja nada porfa que estoy haciendo mal?



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>
</head>
<BODY>
<script type="text/javascript">
 
$('input[type=button]').on ('click', function () {
    var totalAmount = $('#amount').val(); // Cantidad a pagar -> 1200
    var feeType     = $('#typefee option:selected').val()  || 24; // En cuantos meses, 6, 12, 24. Por defecto 24
    var tax         = 0.05; //Impuesto
 
    var totalAlreadyPay = $('#amountPayed').val() || 0; // Lo que ya se ha pagado -> 200
 
    if ((totalAmount && totalAmount > 0) || totalAlreadyPay > 0) {
        // En caso de haber pagado ya alguna parte
        totalAmount      = totalAmount - totalAlreadyPay
    }
    $('#amount').val(totalAmount);
 
    // Total a pagar al mes en función del tipo de cuota: 6, 12, 24 meses
    var totalToPay = 0;
    totalToPay = (totalAmount / feeType) + (totalAmount / feeType) * tax;
 
    $('#totalamount').html(totalAmount);
 
});
</script>
 
 
 
<input type="text" id="amount">
<input type="text" id="amountPayed">
<select id="typefee">
    <option value="6">6 meses</option>
    <option value="12">12 meses</option>
    <option value="24">24 meses</option>
</select>
 
<input type="button" value="Calcular">
<div id="totalamount"></div>
 
 
 
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

script para calcular cuotas no despliega resultado

Publicado por manu (4 intervenciones) el 01/02/2016 22:07:52
No me arroja nada porfa que estoy haciendo mal?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>
</head>
<BODY>
<script type="text/javascript">
 
$('input[type=button]').on ('click', function () {
    var totalAmount = $('#amount').val(); // Cantidad a pagar -> 1200
    var feeType     = $('#typefee option:selected').val()  || 24; // En cuantos meses, 6, 12, 24. Por defecto 24
    var tax         = 0.05; //Impuesto
 
    var totalAlreadyPay = $('#amountPayed').val() || 0; // Lo que ya se ha pagado -> 200
 
    if ((totalAmount && totalAmount > 0) || totalAlreadyPay > 0) {
        // En caso de haber pagado ya alguna parte
        totalAmount      = totalAmount - totalAlreadyPay
    }
    $('#amount').val(totalAmount);
 
    // Total a pagar al mes en función del tipo de cuota: 6, 12, 24 meses
    var totalToPay = 0;
    totalToPay = (totalAmount / feeType) + (totalAmount / feeType) * tax;
 
    $('#totalamount').html(totalAmount);
 
});
</script>
 
 
 
<input type="text" id="amount">
<input type="text" id="amountPayed">
<select id="typefee">
    <option value="6">6 meses</option>
    <option value="12">12 meses</option>
    <option value="24">24 meses</option>
</select>
 
<input type="button" value="Calcular">
<div id="totalamount"></div>
 
 
 
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

script para calcular cuotas no despliega resultado

Publicado por xve (2100 intervenciones) el 02/02/2016 08:15:47
Hola manu, creo que tu problema, es que el javascript esta definidoantes que el DOM de la pagina, por lo que no funciona el evento...

Prueba a poner tu código javascript así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$(document).ready(function(){
	$('input[type=button]').on ('click', function () {
		var totalAmount = $('#amount').val(); // Cantidad a pagar -> 1200
		var feeType     = $('#typefee option:selected').val()  || 24; // En cuantos meses, 6, 12, 24. Por defecto 24
		var tax         = 0.05; //Impuesto
 
		var totalAlreadyPay = $('#amountPayed').val() || 0; // Lo que ya se ha pagado -> 200
 
		if ((totalAmount && totalAmount > 0) || totalAlreadyPay > 0) {
			// En caso de haber pagado ya alguna parte
			totalAmount      = totalAmount - totalAlreadyPay
		}
		$('#amount').val(totalAmount);
 
		// Total a pagar al mes en función del tipo de cuota: 6, 12, 24 meses
		var totalToPay = 0;
		totalToPay = (totalAmount / feeType) + (totalAmount / feeType) * tax;
 
		$('#totalamount').html(totalAmount);
	});
});

Esto lo que hace, es no cargar el código javascript hasta que esta cargado el DOM de la página.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

script para calcular cuotas no despliega resultado

Publicado por Vainas (258 intervenciones) el 02/02/2016 09:17:14
Buenas de nuevo:

Quita esto por que no es necesario (pensaba que si pero no lo necesitas):

1
$('#amount').val(totalAmount);

abajo cambia totalAmount por totalToPay:

$('#totalamount').html(totalToPay);

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar