Foros del Web » Programando para Internet » Javascript »

Eliminar caracteres invalidos en tiempo real [Función]

Estas en el tema de Eliminar caracteres invalidos en tiempo real [Función] en el foro de Javascript en Foros del Web. Hola amigos, en esta ocación no es para solicitar ayuda, más bien es para brindar el conocimiento que adquiri de un ejemplo. Vamos a crea ...
  #1 (permalink)  
Antiguo 26/03/2009, 03:14
Avatar de polin2bclan  
Fecha de Ingreso: julio-2008
Mensajes: 73
Antigüedad: 15 años, 10 meses
Puntos: 5
De acuerdo Eliminar caracteres invalidos en tiempo real [Función]

Hola amigos, en esta ocación no es para solicitar ayuda, más bien es para brindar el conocimiento que adquiri de un ejemplo.

Vamos a crea una función para eliminar caracteres invalidos de los campos de un formulario, esto en tiempo real.

En la cabecera (entre la etiqueta head) o bien en un archivo externo .js agregaremos lo siguiente:

<head>
Código PHP:
<script language="JavaScript"><!--
function 
validar(string) {
    for (var 
i=0output=''validos="123456789"i<string.lengthi++)
       if (
validos.indexOf(string.charAt(i)) != -1)
          
output += string.charAt(i)
    return 
output;

</script> 
</head>

O bien en:

funciones.js
Código PHP:
function validar(string) {
    for (var 
i=0output=''validos="123456789"i<string.lengthi++)
       if (
validos.indexOf(string.charAt(i)) != -1)
          
output += string.charAt(i)
    return 
output;

-----------------
Ya teniendo la funcion nos tocara escribir en el evento onchange nuestra funcion de el modo siguiente:
Código PHP:
<form>
<
p><input type="text" name="Campo1" onChange="this.value=validar(this.value)" /></p>
<
p><input type="text" name="Campo2" /></p>
</
form
esto hara que cuando usted escriba una letra en el campo (Campo1) automaticamente se eliminen las letras y queden solo los caracteres validos que en el caso de la funcion son solo numeros.

Por si quieren numeros y letras la funcion deberia ser asi:
Código PHP:
function validar(string) {
    for (var 
i=0output=''validos="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"i<string.lengthi++)
       if (
validos.indexOf(string.charAt(i)) != -1)
          
output += string.charAt(i)
    return 
output;

Espero les sirva como a mí.

Bendiciones
  #2 (permalink)  
Antiguo 26/03/2009, 05:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Eliminar caracteres invalidos en tiempo real [Función]

Hola

Buen aporte, solo dos cosas

+ El evento debería de ser onkeyup
+ Este script deberías de haberlo publicado en la faq

De cualquier modo se agradece
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 27/06/2009, 02:09
Usuario no validado
 
Fecha de Ingreso: febrero-2009
Mensajes: 14
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Eliminar caracteres invalidos en tiempo real [Función]

y en el caso de la ñ
  #4 (permalink)  
Antiguo 27/06/2009, 04:27
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Eliminar caracteres invalidos en tiempo real [Función]

Hola

Lo único que has de hacer es añadir "ñ" a la var validos

De cualquier usar expresiones regulares mucho mejor

Para el caso que te ocupa has de cambiar

patron =/[A-Za-z\s]/; // 4

por

patron =/[A-Za-z0-9ñÑ\s]/; // Número y letra incluida la ñ


Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 04:34.