Foros del Web » Programando para Internet » Javascript »

cambiar , por .

Estas en el tema de cambiar , por . en el foro de Javascript en Foros del Web. Hola tengo estas dos funciones Código: function Comprobarnum(e) { //comprobamos que los datos sean numeros // Variables que definen los caracteres permitidos var numeros = ...
  #1 (permalink)  
Antiguo 13/12/2015, 14:27
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 8 años, 6 meses
Puntos: 1
cambiar , por .

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
  #2 (permalink)  
Antiguo 15/12/2015, 09:27
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: cambiar , por .

No he visto tu código la verdad, pero lo que pides se puede hacer con la función replace() de js.

Igualmente ese tema ya fue abordado hace tiempo

http://www.forosdelweb.com/f13/susti...scribe-302251/

Espero te ayude

Etiquetas: funcion, input, php, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:44.