VAlor de porcentaje que se toma de un campo solo lectura
Publicado por Eduardo (186 intervenciones) el 07/02/2020 23:16:51
Hola a todos tengo esta duda el cual espero me puedan ayudar a resolver
anteriormente me han ayudado a construir un script que suma el valor de dos campos y lo muestra en un campo de resultado, hasta allí no hay problema, el problema es que ese resultado como aparece dinámico toca sacarle el 15% pero como en ese campo no se tipea o digita (pues se supone que es un campo de solo lectura aca le quite la solo lectura para mostrar que solo calcula el porcentaje si se escribe en el resultado) por lo que no aparece en el campo de porcentaje.. como hago para que el resultado de la suma haga el calculo y aparezca en el campo de porcentaje. (solo aparece si escribo el valor directo en el campo resultado) aca pongo el código...
anteriormente me han ayudado a construir un script que suma el valor de dos campos y lo muestra en un campo de resultado, hasta allí no hay problema, el problema es que ese resultado como aparece dinámico toca sacarle el 15% pero como en ese campo no se tipea o digita (pues se supone que es un campo de solo lectura aca le quite la solo lectura para mostrar que solo calcula el porcentaje si se escribe en el resultado) por lo que no aparece en el campo de porcentaje.. como hago para que el resultado de la suma haga el calculo y aparezca en el campo de porcentaje. (solo aparece si escribo el valor directo en el campo resultado) aca pongo el 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA EN CAMPOS--------
function fncSuma(){
caja=document.forms["form1"].elements;
var campo1 = caja["campo1"].value.replace(/\./g,"");
var campo2 = caja["campo2"].value.replace(/\./g,"");
resultado= +campo1 + +campo2;
console.log(resultado);
if(!isNaN(resultado)){
caja["resultado"].value=resultado;
format(caja["resultado"]);
}
}
</script>
<script>
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<script>
function calculaPorcentajes(numero){
var campo4 = document.getElementById("campo4");
campo4.value=Math.floor(numero*0.15/1000)*1000;
format(campo4);
}
</script>
<form method="post" name="form1">
<p>+Primer Numero:
<input type="text" name="campo1" onKeyUp="fncSuma();format(this)" onChange="format(this)"/>
</p>
<p>+ Segundo Numero:
<input type="text" name="campo2" onKeyUp="fncSuma();format(this)" onChange="format(this)"/>
</p>
<p>Resultado:
<input name="resultado" type="text" onKeyUp="calculaPorcentajes(this.value)" onChange="format(this)"/>
</p>
<p>Porcentaje 15%
<input type="text" name="campo4" onChange="format(this)" id="campo4"/>
</p>
</form>
</body>
</html>
Valora esta pregunta


0