permite inpust solo numericos con un maximo de decimales
handlerInputNumerico(e) {
var max = 9;
var maxlength = 1;
//Obtiene el valor de max y la cantidad de caracteres del max
if (e.target.attributes['max'] != null) {
max = Number(e.target.attributes['max'].nodeValue);
maxlength = e.target.attributes['max'].nodeValue.length;
}
const name = e.target.name;
let value = e.target.value.replace(/[^0-9.]/g, "");
if (value == "0") {
value = "0";
}
if (value == "") {
value = "0";
}
if (e.target.value.charAt(0) == "0" && e.target.value.length == 2) {
if (e.target.value.charAt(1) != ".")
value = e.target.value.substring(1, 2);
}
if (value == "") {
e.target.value = value;
this.setState({ [name]: value });
}
else {
var valueNumber = 0;
if (value.length > maxlength && value.indexOf('.') == -1) {
var valor = value.substring(0, maxlength);
valueNumber = Number(valor);
}
else {
if (value.indexOf('.') != -1) {
var cantDec = e.target.value.split(".");
if (cantDec[1].length > 4) {
valueNumber = value.substring(0, value.indexOf('.') + 5);
}
else {
valueNumber = value;
}
}
else {
valueNumber = value;
}
}
//Verifica valor contra max
if (valueNumber < max) {
e.target.value = valueNumber;
this.state[name] = valueNumber;
}
else {
e.target.value = valueNumber;
this.state[name] = max;
}
}
this.calculoTotalRow();
}