JSFiddle - React, Tailwind, and code Playground
by Porfirio Chavez
HTML
<form method="post" name="sumar">
<p>+Primer Numero:
<input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onchange="format(this)" />
</p>
<p>+ Segundo Numero:
<input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onchange="format(this)" />
</p>
<p>- Tercer Numero:
<input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onchange="format(this)" />
</p>
<p>Resultado:
<input name="resultado" type="text" readonly />
</p>
</form>
JavaScript
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar() {
caja = document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value);
var numero2 = Number(caja["numero2"].value);
var numero3 = Number(caja["numero3"].value);
resultado = numero1 + numero2 - numero3;
if (!isNaN(resultado)) {
caja["resultado"].value = numero1 + numero2 - numero3;
}
}
//-----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, '');
}
}