| Por: Sarin Torrealba | | 19/9/06
|
Hola,
Te envio las funciones javascript para que el explorador autocomplete con puntos las cifras de miles del número que acaba de ingresar el usuario (Thousand) . Y la función para removerlos (PointsRemoved) para cuando vayas a grabarlo en la BD.
function Thousand(donde,caracter){
pat = /[\*,\+,\(,\),\?,\\,\$,\[,\],\^]/
valor = donde.value
largo = valor.length
crtr = true
//debugger
if(isNaN(caracter) || pat.test(caracter) == true)
{
if (pat.test(caracter)==true)
{
caracter = "\\" + caracter
}
carcter = new RegExp(caracter,"g")
valor = valor.replace(carcter,"")
donde.value = valor
crtr = false
}
else
{
var nums = new Array()
cont = 0
// Para manejar las tildes
if (valor.indexOf(String.fromCharCode(96))>-1 || valor.indexOf(String.fromCharCode(180))>-1)
{
valor = valor.replace(String.fromCharCode(96),"");
valor = valor.replace(String.fromCharCode(180),"");
donde.value = valor;
largo = valor.length;
}
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
}
}
Esta función se llama en el evento onkeyup de la caja de texto. Ejemplo
onkeyup="Thousand(this,this.value.charAt(this.value.length-1));"
Y la función para remover los puntos
function PointsRemoved(valText)
{
var valorOriginal="";
if (valText.indexOf(".") < 0)
{
valorOriginal=valText;
}
else
{
var valor = valText.split(".");
for(var i=0;i < valor.length;i++)
{
valorOriginal = valorOriginal + valor[i];
}
}
return valorOriginal;
}
Espero te sirva
ST