JavaScript - Calculo de coste

 
Vista:

Calculo de coste

Publicado por Noob (1 intervención) el 02/10/2017 02:15:55
Buenas!! Espero no dañas sus ojos... jajaja.
El código lo saqué de un foro en ingles, estoy intentando usarlo para replicar una formula que sirve para calcular indemnizaciones por accidentes laborales.
La formula sería:

65 (edad jubilatoria general) / edad del trabajador al momento del accidente X IBM (Ingreso de Base Mensual / Sueldo) X 53 (numero Fijo en la ley) X Porcentaje de Incapacidad] /100.


Estuve haciendo varias pruebas pero no logro que funcione, mi código:

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
<form>
    <h3>Web Design Cost Form </h3><br>
    <div class="form-group">
        <label>Edad de jubilación (Fija en 65)</label>
        <select class="form-control" id="site_category" onchange="finalCost()">
            <option value="65"> 65 </option>
        </select>
    </div>
    <div class="form-group">
        <label>Edad del accidente</label>
        <input type="number" class="form-control" id="page_number" value="0" placeholder="How many pages you want?" onkeyup="finalCost()">
    </div>
    <div class="form-group">
        <label>Sueldo</label>
        <input type="number" class="form-control" id="img_number" value="0" placeholder="How many images you want?" onkeyup="finalCost()">
    </div>
    <div class="form-group">
        <label>Porcentaje</label>
            <select class="form-control" id="month_seo" onchange="finalCost()">
            <option value="0.05">%5</option>
        </select>
    </div>
    <div class="form-group">
        <label>180.000</label>
        <select class="form-control" id="month_seo" onchange="finalCost()">
            <option value="180000">180.000</option>
        </select>
    </div><br>
    <div class="form-group">
        <label>Costo total ($) : </label>
        <span id="result" style="background-color: #31418f;color: #fff;padding: 6px 70px;font-weight: 600;font-size: 18px; margin-left: 10px;border-radius: 5px;">0</span>
    </div>
</form>

1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
function finalCost(){
    var cat = document.getElementById("site_category").value;
    var page = document.getElementById("page_number").value;
    var img = document.getElementById("img_number").value;
    var slider = document.getElementById("slider_number").value;
    var seo = document.getElementById("month_seo").value;
 
	var total = (parseInt(cat)) / (parseInt(page)) * (parseInt(img)*53) * (parseInt(slider)) / (parseInt(seo));
 
    document.getElementById("result").innerHTML = total;
}
</script>
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

Calculo de coste

Publicado por xve (2100 intervenciones) el 02/10/2017 08:01:24
Hola Noob, tienes un par de errores en tu código... uno es que estas utilizando dos id's iguales, y el otro es que estas utilizando parseInt() cuando es un valor con decimales, y tienes que utilizar parseFlaot()

te adjunto el código corregido...
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
<form>
    <h3>Web Design Cost Form </h3><br>
    <div class="form-group">
        <label>Edad de jubilación (Fija en 65)</label>
        <select class="form-control" id="site_category" onchange="finalCost()">
            <option value="65"> 65 </option>
        </select>
    </div>
    <div class="form-group">
        <label>Edad del accidente</label>
        <input type="number" class="form-control" id="page_number" value="0" placeholder="How many pages you want?" onkeyup="finalCost()">
    </div>
    <div class="form-group">
        <label>Sueldo</label>
        <input type="number" class="form-control" id="img_number" value="0" placeholder="How many images you want?" onkeyup="finalCost()">
    </div>
    <div class="form-group">
        <label>Porcentaje</label>
            <select class="form-control" id="slider_number" onchange="finalCost()">
            <option value="0.05">%5</option>
        </select>
    </div>
    <div class="form-group">
        <label>180.000</label>
        <select class="form-control" id="month_seo" onchange="finalCost()">
            <option value="180000">180.000</option>
        </select>
    </div><br>
    <div class="form-group">
        <label>Costo total ($) : </label>
        <span id="result" style="background-color: #31418f;color: #fff;padding: 6px 70px;font-weight: 600;font-size: 18px; margin-left: 10px;border-radius: 5px;">0</span>
    </div>
</form>
 
<script>
function finalCost(){
    var cat = document.getElementById("site_category").value;
    var page = document.getElementById("page_number").value;
    var img = document.getElementById("img_number").value;
    var slider = document.getElementById("slider_number").value;
    var seo = document.getElementById("month_seo").value;
 
	var total = (parseInt(cat)) / (parseInt(page)) * (parseInt(img)*53) * (parseFloat(slider)) / (parseInt(seo));
 
    document.getElementById("result").innerHTML = total;
}
</script>
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