Hola
tengo estas dos funciones
Código:
function Comprobarnum(e) { //comprobamos que los datos sean numeros
// Variables que definen los caracteres permitidos
var numeros = "0123456789,-";
var teclas_especiales = [37, 8, 39, 46, 190, 188, 9, 173]; //46 = Supr, 37 = flecha izquierda, 39 = flecha derecha
// Obtener la tecla pulsada
var evento = e || window.event;
var tecla = evento.charCode || evento.keyCode;
var caracter = String.fromCharCode(tecla);
// Comprobar si la tecla pulsada es alguna de las teclas especiales
var tecla_especial = false;
for(var i in teclas_especiales) {
if(tecla == teclas_especiales[i]) {
tecla_especial = true;
break;
}
}
// Comprobar si la tecla pulsada se encuentra en los caracteres permitidos
var chachi = numeros.indexOf(caracter) != -1 || tecla_especial;
// if ((chachi == false) || (tecla_especial == false)) { $().toastmessage('showToast', { text : 'Solo pueden introducirse numeros enteros' , sticky : false, type : 'notice' }); }
return chachi;
}
y
Código:
$('.numeros').on('keyup',function(e){
$(this).val($(this).val().replace(/,/g,"."));
});
separados funcionan pero tengo un problema, la segunda función hace que se me desmarque el input, con lo que para cambiar el contenido que tiene lo tienes que borrar a mano.
he pensado en fusionarlas pero no se muy bien donde la podría poner
también otra opción seria que en otra función que calcula los totales cambie la , por un punto con lo que para mysql y php me vendría genial...
¿alguien sabe como podría hacerlo?
por si quereis ver la función que uso para calcular los importes seria esta:
Código:
function presupuestar() { //calculamos totales
var dcto = parseFloat($("#descu").val()) / 100;
var impuestos = parseFloat($("#iva").val()) / 100;
var subaseimpo = parseFloat($("#cantidad").val()) * parseFloat($("#precio").val()) * parseFloat($("#coeficiente").val());
var dcto0 = parseFloat(subaseimpo) * parseFloat(dcto);
var baseimpo = parseFloat(subaseimpo) - parseFloat(dcto0);
var baseiva = parseFloat(baseimpo) * parseFloat(impuestos);
var total = parseFloat(baseimpo) + parseFloat(baseiva);
$("#base").val(baseimpo);
$('#totalimpu').val(baseiva);
$('#subtotal').val(total);
//pongo el codigo para calcular el total superior
var basetota = 0;
var totales = $('input[name^=base]');
totales.each(function(){ var valor = $(this).val(); if (!isNaN(valor)) { basetota += parseFloat(valor); } else { return true; } //calculamos la base
$('input[name=Totalbase]').val(basetota);
$("#Pbase").text(" "+ basetota +" €");
});
var basetotaiva = 0;
var totalesiva = $('input[name^=totalimpu]');
totalesiva.each(function(){ var valor2 = $(this).val(); if (!isNaN(valor2)) { basetotaiva += parseFloat(valor2); } else { return true; } //calculamos la base del iva
$('input[name=Baseconiva]').val(basetotaiva);
$("#Piva").text(" "+ basetotaiva +" €");
});
var Supertotal = parseFloat(basetotaiva) + parseFloat(basetota);
$('input[name=Preciofinaliva]').val(Supertotal);
$("#Ptotal").text(" "+ Supertotal +" €");
}
si pongo . en el input va genial, pero claro al poner una , para separar decimales peta por todos lados, así que me he visto obligado a cambiar las , por .
Muchas gracias a todos por vuestra ayuda