Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Evitar minusculas, acentos y números

Estas en el tema de Evitar minusculas, acentos y números en el foro de Javascript en Foros del Web. Hola. Estoy trabajando con un formulario en el cual se capturan datos del usuario, pero quiero que solo pueda escribir mayúsculas, sin acentos y sin ...
  #1 (permalink)  
Antiguo 30/03/2010, 13:42
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 10 meses
Puntos: 8
Evitar minusculas, acentos y números

Hola.

Estoy trabajando con un formulario en el cual se capturan datos del usuario, pero quiero que solo pueda escribir mayúsculas, sin acentos y sin números ni caracteres especiales.

He hecho lo siguiente:

Código PHP:
<script language="javascript" type="text/javascript">
    function 
validKey(k)
    {
        var 
keyNum 0;
        if(
typeof (k.charCode) == 'undefined' )
        {
            
keyNum k.keyCode;
        }
        else
        {
            
keyNum k.charCode;
        }
        if( ! ( (
keyNum >=65 && keyNum <=90) ))
        {
            return 
false;
        }
        return 
true;
    }
    
</script> 
Y para mandar el evento a la función utilizo esta linea:

Código PHP:
<input name="nombre" type="text" id="nombre" size="45" maxlength="48" onkeypress="return validKey(event);"/> 
Esto como resultado me permite escribir únicamente mayúsculas (esto esto si lo quiero), pero deshabilita el enter, tabulador, espacio y minúsculas.
Y lo que yo quiero es que permita escribir tambien minúsculas pero que las convierta a mayúsculas y que con el Tabulador o Enter se cambie a otro campo de texto, que debo cambiar?

Espero haberme dado a entender. Esperaré consejos.
Muchas gracias
  #2 (permalink)  
Antiguo 30/03/2010, 19:13
Avatar de berthely  
Fecha de Ingreso: junio-2008
Ubicación: VHSA Mexico
Mensajes: 453
Antigüedad: 16 años, 5 meses
Puntos: 9
Respuesta: Evitar minusculas, acentos y números

Tal vez deberías de dejar que el usuario escriba sus datos como quiera, y utilizar la función blur para traducir la cadena a mayúsculas y sustituir los hacentos.

Código HTML:
Ver original
  1. <input name="nombre" type="text" id="nombre" size="45" maxlength="48" onblur="validar();"/>

Código Javascript:
Ver original
  1. function validar(){
  2. //guardamos el valor del input en la variable cadena1
  3. var cadena1 = document.getElementById('nombre').value;
  4.  
  5. //transformamos la cadena a mayuscula
  6. cadena2 = srtreplace('','')   // aquí tienes que investigar como remplazar los caracteres ó  buscar una función la cual no recuerdo, pero creo que hay una que se llama toUpper() para cambiar a mayúsculas
  7.  
  8. //unavez procesada la cadena regresamos el valor al input
  9. document.getElementById('nombre').value = cadena2;
  10. }

Más o menos así, espero sirva de algo.
  #3 (permalink)  
Antiguo 30/03/2010, 19:31
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: Evitar minusculas, acentos y números

A ver, para colocar todo a mayúsculas es fácil, solamente aplicas en el input el estilo que hace que todo se vea en mayúsculas: text-transform: uppercase, después cuando lo coges en PHP lo conviertes a mayúsculas usando strtoupper, a la vez en PHP puedes reemplazar los acentos por su equivalente sin acentos. Así te queda todo en mayúscula y sin acentos aunque el usuario al principio pueda escribir con acentos. Espero que mi idea te sirva. Suerte!
  #4 (permalink)  
Antiguo 02/04/2010, 00:46
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Evitar minusculas, acentos y números

Hola.

Muchas gracias por los consejos pero aun no me funcionan, y me gustaria que la conversión a mayusculas ocuura cuando se pulse la tecla TAB o que se pulse con el mouse en cualquier parte fuera del campo de texto.

Cualquier ayuda se los agraceceria mucho.
  #5 (permalink)  
Antiguo 05/04/2010, 16:50
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: Evitar minusculas, acentos y números

A ver, claro, es una buena opción, solo usa el evento onblur y la función toUpperCase() de JavaScript. Con solo eso lo harás sin poblemas.

Última edición por ElJavista; 06/04/2010 a las 07:21
  #6 (permalink)  
Antiguo 14/04/2010, 11:30
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Evitar minusculas, acentos y números

Hola.

pero como le haco para combinar las dos instrucciones. Trate de hacerlo así:

Código PHP:
<input name="nombre_campo" type="text" id="nombre_campo" size="15" maxlength="15" onkeypress="return validKey(event);" onblur="validar();"/> 
Pero solo toma la primer función, es decir la de onkeypress="return validKey(event);" ignorando la de onblur="validar();

y si los intercambio sucede a la inversa y nunca se ejecutan las dos

Gracias
  #7 (permalink)  
Antiguo 14/04/2010, 11:37
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Evitar minusculas, acentos y números

Hola nuavamente.

Buscando por ahi encontre este código:

Código PHP:
    <script language=""="JavaScript">
        function 
conMayusculas(field)
        {
            
field.value field.value.toUpperCase()
        }  
    
</script> 
y lo mando llamar así:
Código PHP:
<input name="nombre_campo" type="text" id="nombre_campo" size="15" maxlength="15" onChange="conMayusculas(this)"/> 
Este código combierte a mayúsculas al abandonar el campo de texto, ya sea con tabulador o con click del mouse fuera del campo, así esta mucho mejor, ya solo me falta que no acepte números ni acentos.
¿cómo le puedo agregar esa validación al código script que ya tengo?
  #8 (permalink)  
Antiguo 03/05/2010, 23:10
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Evitar minusculas, acentos y números

Hola.

Les cuento que he encontrado un problema en el código que tengo, efectivamente me convierte las minusculas a mayusculas pero en ocaciones me elimina los espacios en blanco y quiero que no lo haga, ¿cómo lo puedo corregir? Y aún tengo pendiente lo de los acentos, tambien si alguien sabe como agregar el código necesario para evitarlos tambien lo agradecería mucho.
  #9 (permalink)  
Antiguo 08/05/2010, 11:34
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Evitar minusculas, acentos y números

Hola.

Sigo con el problema de evitar acentos en la cadena introducida por el usuario, se me ocurre esto:

En el archivo1.php hago lo siguiente:

1.- El texto introducido se guarda en un campo de texto, llamado por asi decirlo text1.

Código JavaScript para convertir a mayúsculas:
Código:
<script language=""="JavaScript">
		function conMayusculas(field)
		{
			field.value = field.value.toUpperCase()
		}  
</script>

Código HTML:
<form action="archivo2.php" method="post">
     <input name="text1" type="text" id="text1" onchange="conMayusculas(this)"/>
</form> 

2.- Este valor es enviado por método post a otro archivo llamado archivo2.php en el cual recupero el valor con el siguiente código:

Código PHP:
<?php
$valorRecuperado 
$_POST["text1"];
?>
Ahora ya tengo el texto en mayusculas guardado en la variable $valorRecuperado.
¿Hay alguna forma de utilizando ciclos if revizar el texto letra por letra y si se encuentra una vocal con acento remplazarla por la equivalente sin el acento?

Muchas gracias.
  #10 (permalink)  
Antiguo 08/05/2010, 11:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Evitar minusculas, acentos y números

si es necesario los requisitos que expones (mayusculas y sin acentos), es recomendable que lo manejes todo desde el servidor, pero este no es el foro de php. recuerda que el navegador puede tener inhabilitado o simplemente no tiene soporte para javascript, por lo cual puede saltarse facil los requisitos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 12/05/2010, 12:47
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Evitar minusculas, acentos y números

Hola.

Ya he podido solucionarlo aunque es con PHP, lo unico de JS es el método para convertira mayusculas, el metodo PHP para quitar los acentos es el que explico a continuación:

En el código que explique anteriormente pueden ver que el valor lo recupero en otro archivo, ahora desde aqui solo se hace uso del método:

$var1 = str_replace($caracter_a_remplazar, $nuevo_caracter, $valorRecuperado);

donde:
$caracter_a_remplazar es la vocal con el acento, por ejemplo la Á
$nuevo_caracter es la vocal sin el acento, por ejemplo la A
$valorRecuperado es la cadena escrita por el usuario
$var1 es la variable en la cual guardamos la cadena en la que la vocal A ya no tiene el acento.

Como veran este proceso tenemos que hacerlo 4 veces para ir quitando los acentos vocal por vocal, en el siguiente mandariamos $var1 en lugar de $valorRecuperado y asi susesivamente

Si hay alguien que tiene este problema, pues esta es una sensilla solución.

Saludos.

Etiquetas: acentos, minusculas
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:45.