Foros del Web » Programando para Internet » Javascript »

ideas?

Estas en el tema de ideas? en el foro de Javascript en Foros del Web. Hola tengo que programar una cosilla sencilla, pero no tengo mucho nivel en javascript y no sé ni como empezar. Necesito una funcion que me ...
  #1 (permalink)  
Antiguo 24/09/2008, 05:19
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
ideas?

Hola tengo que programar una cosilla sencilla, pero no tengo mucho nivel en javascript y no sé ni como empezar. Necesito una funcion que me convierta un campo con puntos es decir:

-si yo meto 44588965q como dni en un campo,
-el me devuelva 44.588.645q como resultado.

El problema es que todos los tamaños son distintos 2.3.4, entonces no sé como empezar. Alguna idea por favor?
  #2 (permalink)  
Antiguo 24/09/2008, 09:04
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: ideas?

Osea que coloque un punto cada 3 caracteres desde el final al principio?
Si es asi, podrias recorrer la cadena de atras hacia adelante, e ir copiandola en una variable temporal, e ir agregando los puntos cada 3 caracteres, luego la imprimes de atras hacia adelante, y te queda como quieres.

Saludos.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 25/09/2008, 02:00
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Pregunta Respuesta: ideas?

Al final, como no entiendo mucho he intentado hacer algo sencillo pero me hace cosas raras, a ver si me podeis ayudar o corregir algo:

Tengo en javascript:
Código HTML:
<script language="javascript">
function puntitos(){ 
valor=document.getElementById("num").value; //valor del input
valor=valor.replace(".","");
valor=valor.replace(" ","");
//cojo todos los valores (numeros y letra y luego le doy el valor al input)

str1=valor.charAt(0);
str2=valor.charAt(1);
str3=valor.charAt(2);
str4=valor.charAt(3);
str5=valor.charAt(4);
str6=valor.charAt(5);
str7=valor.charAt(6);
str8=valor.charAt(7);
str9=valor.charAt(8);
val2=str1+str2+"."+str3+str4+str5+"."+str6+str7+str8+" "+str9;
return val2;
//document.getElementById("num").value=val2;

}
</script> 
y un campo que es:
<input type="text" id="num" name="num" value="" size="25" onchange="this.value=puntitos();" />

lo que ocurre es que si yo escribo un dni da igual con "." o " ", lo quito para que me quede solamente el numero con la letra. Luego cojo todas las posiciones e intercalo los puntos y el espacio para que me quede como quiero. Lo que ocurre es que si escribo el dni con puntos y la letra separada, me lo coje mal.
Alquien sabe porqué puede ser?
Además solo funciona cuando pincho con el raton en otro sitio, si le doy a intro me coje el valor y me lo vuelve a quitar. no hay un evento onlostfocus o algo asi??

Ayuda porfi.
  #4 (permalink)  
Antiguo 25/09/2008, 02:10
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: ideas?

me di cuenta de que el punto y el espacio solo me lo quitaba una vez y ya lo arregle con /[.]/g
pero de todas formas, hay alguna funcion para que me haga el cambio solo cuando cambie a otro campo distinto? onchange con intro no me lo guarda, calcula el valor, lo escribe y luego me lo deja en blanco!!
  #5 (permalink)  
Antiguo 25/09/2008, 03:12
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ideas?

¿Y si mi DNI sólo tiene 6 ó 7 números? El mío sólo tiene 7 y el de mi madre 6, así que no es algo imposible.

Creo que deberías hacerlo como dice the_web_saint, desde atrás hacia delante.
  #6 (permalink)  
Antiguo 25/09/2008, 03:51
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: ideas?

joe, no había visto nunca ese caso, que es eso?

De todas formas también puedo hacerlo de atras a delante manualmente, pero de todas formas, porqué puede pasar eso de que cuando doy a intro no se me queda el valor? he probado cambiando onblur por onchange y me hace lo mismo, me calcula el número bien, pero luego me lo borra.
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 22:06.