Foros del Web » Programando para Internet » Javascript »

Sobre un codigo de Tunait

Estas en el tema de Sobre un codigo de Tunait en el foro de Javascript en Foros del Web. hola mi nombre es Viviana y estoy trabajando con la funcion de "colocar separadores de miles mientras se escribe". La estuve modificando y el problema ...
  #1 (permalink)  
Antiguo 02/07/2007, 09:41
 
Fecha de Ingreso: mayo-2007
Ubicación: Los Teques -Edo Miranda
Mensajes: 43
Antigüedad: 17 años, 7 meses
Puntos: 0
Sobre un codigo de Tunait

hola mi nombre es Viviana y estoy trabajando con la funcion de "colocar separadores de miles mientras se escribe". La estuve modificando y el problema q tengo es q tu funcion da el formato automatico cuando se necesita escribir decimalesok perfecto...pero como hay q ajustar los codigos a las necesidades d los usuarios tengo un problema con los decimales al momento que el usuario desea tipearlos ya que el usuario, a traves del punto , colocara los decimales q el considere ej: 145,114.45...te voy a presentar mas o menos lo q le modifique el me da el formato pero fijate en esto cuando coloco el punto para escribir el decimal m sihue separando con las comas de esta manera 145.114,.45.. a continuacion t presento el codigo :
<script>
function puntitos(donde,caracter){
pat = /[\*,\+,\(,\),\?,\,$,\[,\],\^]/
valor = donde.value
crtr = true
largo = valor.length;
var posdec=valor.indexOf(".",0);
if(isNaN(caracter) || pat.test(caracter) == true || pat.test(caracter) == "."){

if(pat.test(caracter) == "."){

if(posdec != -1){
posdec=posdec+1;
var dec = caracter.substring(posdec,largo);
dec="."+dec;
dec=Math.round(dec*100);
posdec=posdec-1;
var entero = caracter.substring(posdec,0);
dec="."+dec;
//var l=entero.length;
}else{
var dec=".00";

}
}
if (pat.test(caracter)==true){
caracter = "\\" + caracter
carcter = new RegExp(caracter,"g")
valor = valor.replace(carcter,"")
donde.value = valor
crtr = false
var l=valor.length
}

}
else{
var nums = new Array()
cont = 0
for(m=0;m<largo;m++){
if(valor.charAt(m) == "," || valor.charAt(m) == " ")
{continue;}
else{
nums[cont] = valor.charAt(m)
cont++
}
}
}
var cad1="",cad2="",tres=0
if(largo > 3 && crtr == true){
for (k=nums.length-1;k>=0;k--){
cad1 = nums[k]
cad2 = cad1 + cad2
tres++
if((tres%3) == 0){
if(k!=0){
cad2 = "," + cad2
}
}
}
donde.value = cad2
}
} </script>

<td colspan="3" align="right" bgcolor="#ECEEEC">Monto Total a Pagar:</td>
<td><input name="montoPago" type="text" onkeyup="puntitos(this,this.value.charAt(this.valu e.length-1)); var numero=this.value.replace(/([^0-9\.\-])/g,'')*1; sinformat.value=numero;">
<input name="sinformat" type="hidden" ></td>

Espero q me puedas ayudar y muchas gracias por tu colaboracion Adios :)
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 19:51.