tengo 2 input, el primero es un numero que se ingresa manuelmente y debe ser formateado dinamicamente al momento de ingresar un numero, esto funciona perfectamente
El segundo input es el resultado del primer input dividido por 4 y aqui va el problema
ya que al poner la variable sin formatear el numero me hace bien la division y lo muestra dinamicamente, pero el problema va cuando quiero activar la funcion para formatear ya que ni siquiera divide.
Les dejo el codigo para que me puedan ayudar, el codigo esta funcionando pero sin formatear, para que les de el error cambien estas lineas y comenten la primera y saquenle el comentario a la segunda, de antemano muchas gracias, y si eres de chile y de santiago y quiers ganarte unos pesos avisame ya que puede haber unas luquitas
document.getElementById('resultado').value=(sinfor mat);
//document.getElementById('resultado').value=(""+num berFormat(sinformat).value);
Código:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin título</title> <script type='text/javascript' src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> </head> <body> <script type="text/javascript"> 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; } else{ alert('Solo se permiten numeros'); input.value = input.value.replace(/[^\d\.]*/g,''); } } </script> <script> function obtenerSuma() { var s = document.getElementById('sueldo').value; // Replace "the" with "a". var re = /\./g; var result = s.replace(re, ""); var sinformat; var conformat; sinformat =parseFloat(result)/parseFloat("4"); document.getElementById('resultado').value=(sinformat); //document.getElementById('resultado').value=(""+numberFormat(sinformat).value); } /** * Funcion que devuelve un numero separando los separadores de miles * Puede recibir valores negativos y con decimales */ function numberFormat(numero){ // Variable que contendra el resultado final var resultado = ""; // Si el numero empieza por el valor "-" (numero negativo) if(numero[0]=="-") { // Cogemos el numero eliminando los posibles puntos que tenga, y sin // el signo negativo nuevoNumero=numero.replace(/\./g,'').substring(1); }else{ // Cogemos el numero eliminando los posibles puntos que tenga nuevoNumero=numero.replace(/\./g,''); } // Si tiene decimales, se los quitamos al numero if(numero.indexOf(",")>=0) nuevoNumero=nuevoNumero.substring(0,nuevoNumero.indexOf(",")); // Ponemos un punto cada 3 caracteres for (var j, i = nuevoNumero.length - 1, j = 0; i >= 0; i--, j++) resultado = nuevoNumero.charAt(i) + ((j > 0) && (j % 3 == 0)? ".": "") + resultado; // Si tiene decimales, se lo añadimos al numero una vez forateado con // los separadores de miles if(numero.indexOf(",")>=0) resultado+=numero.substring(numero.indexOf(",")); if(numero[0]=="-") { // Devolvemos el valor añadiendo al inicio el signo negativo return "-"+resultado; }else{ return resultado; } } </script> <input name="sueldo" type="text" id="sueldo" onKeyUp="obtenerSuma(); format(this);" onchange="format(this)" value="500.000" size="8" maxlength="8"> <p> <input type="hidden" id="divide" onKeyUp="obtenerSuma();" value="4" size="8" maxlength="8"> <input type="text" name="resultado" id="resultado" value="125.000" size="10" maxlength="10" /> </body> </html>