tengo estas dos funciones
Código:
y 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; }
Código:
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. $('.numeros').on('keyup',function(e){ $(this).val($(this).val().replace(/,/g,".")); });
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:
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 . 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 +" €"); }
Muchas gracias a todos por vuestra ayuda