Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2009, 03:14
Avatar de polin2bclan
polin2bclan
 
Fecha de Ingreso: julio-2008
Mensajes: 73
Antigüedad: 16 años, 8 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