Foros del Web » Programando para Internet » Javascript »

No valida Letras() ni numeros() en popup

Estas en el tema de No valida Letras() ni numeros() en popup en el foro de Javascript en Foros del Web. que tal estoy llamando a una ventana emergente en la cual debe validar la caja de texto que solo ingrese numeros o solo ingrese letras ...
  #1 (permalink)  
Antiguo 10/07/2009, 11:45
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Pregunta No valida Letras() ni numeros() en popup

que tal estoy llamando a una ventana emergente en la cual debe validar la caja de texto que solo ingrese numeros o solo ingrese letras ejm.:
<input text="tel" value=<?=tel?> onkeypress=numeros();>
Pero no me realiza la validación; acaso en un popup no se puede validar las cajas de texto?.
  #2 (permalink)  
Antiguo 10/07/2009, 11:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No valida Letras() ni numeros() en popup

¿Dónde tienes definida la función numeros()?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/07/2009, 11:59
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

en titulo.js
En el index llamo a todos mis js
titulo.js
clasesmysql.js
bd.js
funciones.js
entre otros; es por ello q no se que puede estar mal.
  #4 (permalink)  
Antiguo 10/07/2009, 12:00
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

la validacion se puede realizar practicamente donde tu quieras, de modo que ventana emergente o ventana padre da igual. sin embargo, puede que el codigo requiera algun cambio. puesto que no has mostrado todo el codigo asumo que las funciones numeros y Letras estan definidas en la ventana padre. si es asi, tienes que preceder la llamada de la funcion con opener.
Código:
<input text="tel" value=<?=tel?> onkeypress="opener.numeros();" />
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 10/07/2009, 12:05
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

pruebo y comento; haber si me funka.
  #6 (permalink)  
Antiguo 10/07/2009, 15:17
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

este es mi codigo del input ya adaptado pero igual no funciona
Cita:
<input type='text' class='form' size='42' name='ape' value='<?=$ape?>' onkeypress="opener.letras();"></input>
les muestro las paginas que interactuan en la pagina index.php; esos son todos los java que llamo.
Cita:
<script type="text/javascript" src="../js/lib/prototype.js"></script>
<script type="text/javascript" src="../js/lib/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="../js/modalbox.js"></script>
<link rel="stylesheet" href="../css/modalbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="../js/embeddedcontent.js" defer="defer"></script>
<script type="text/javascript" src="../js/ajax.js"></script>
<script type="text/javascript" src="../js/tree.js"></script>
<script type="text/javascript" src="../js/myajax.js"></script>
<script type="text/javascript" src ="../js/titulo.js"></script>
en usuario.php; llamo al modalbox nuevo_usuario.php
Cita:
<a href="javascript:;" onclick="Modalbox.show('nuevo_usuario.php', {title: 'Nuevo Personal', width: 400, loadingString:'Espere Municipalidad Distrital de La Victoria', closeString:'Gracias. Municipalidad Distrital de La Victoria'}); return false;">
<img src='images/nue5.png' alt='Nuevo Usuario' border='0' />
</a>
en el modalbox nuevo_usuario.php queda esto para cada input:
Cita:
<input type='text' class='form' size='42' name='nom' value='<?=$nom?>' onKeypress="letras();"/>
y este es el codigo javascript de titulo.js
Cita:
function letras()
{
var key=window.event.keyCode;
if ((key < 65 || key > 90)&&(key < 97 || key > 122)&&(key!=241)&&(key!=209)&&(key!=32))
{
window.event.keyCode=0;
}

}
  #7 (permalink)  
Antiguo 10/07/2009, 18:21
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

primero mencionar que validacion por teclas me parece inutil. lo correcto seria validar el contenido con expresion regulares.
Código:
<input type="text" onkeyup="
var reg = /\D+/g;
if(reg.test(this.value))this.value = this.value.replace(reg, '');
" />
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 10/07/2009 a las 18:30
  #8 (permalink)  
Antiguo 10/07/2009, 18:38
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

ok; gracias me funciona a la perfeccion; pero eso sería para numeros como seria para que solo pueda ingresar letras()
  #9 (permalink)  
Antiguo 10/07/2009, 18:49
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

ok; resuelto gracias por la ayuda de verdad mil gracias; aqui para quien le interese lo de letras
letras
Cita:
<input type='text' class='form' size='42' name='ape' value='<?=$ape?>' onkeyup="var reg = /(\d|\W)/; if(reg.test(this.value))this.value = this.value.replace(reg,'');" /></input>
numeros
Cita:
<input type='text' class='form' size='42' name='tel' value='<?=$tel?>' onkeyup="var reg = /\D+/g; if(reg.test(this.value))this.value = this.value.replace(reg,'');"></input>
  #10 (permalink)  
Antiguo 14/07/2009, 16:24
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

tengo otro problema; tengo
Código PHP:
<input type='text' class='form' size='42' name='ape' value='<?=$ape?>' onkeyup="var reg = /(\d|\W)/; if(reg.test(this.value))this.value = this.value.replace(reg,'');"></input>
pero ahi se ingresa el apellido necesito dejar espacios; e impedir que se ingresen numeros; pero ahi me pide dejar espacios en blanco y no insertar numeros; quiero poder ingresar espacios en blanco
  #11 (permalink)  
Antiguo 14/07/2009, 16:44
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

Código:
<input ... onkeyup="
var reg = /[^a-z\x20]/gi;
if(reg.test(this.value))this.value = this.value.replace(reg,'');
" />
la expresion regular busca cualquier caracter que no sea letras de la A a la Z y espacio.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #12 (permalink)  
Antiguo 14/07/2009, 16:52
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

y como seria para misma situacion pero con numeros es decir;
solo puedo ingresar 654654654654
pero que pasa si debo ingresar 51-074-97-xxxx; o algo asi no
  #13 (permalink)  
Antiguo 14/07/2009, 17:59
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

Código:
var reg = /^0-9\-/g;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #14 (permalink)  
Antiguo 14/07/2009, 18:28
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

quedaria asi
Cita:
onkeyup="var reg = /^0-9\-/g; if(reg.test(this.value))this.value = this.value.replace(reg,'');"
pero ahi me permite ingresar letras
  #15 (permalink)  
Antiguo 14/07/2009, 19:09
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

disculpame, es asi:
Código:
var reg = /[^0-9\-]/g;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #16 (permalink)  
Antiguo 15/07/2009, 15:29
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Pregunta Respuesta: No valida Letras() ni numeros() en popup

Ok; gracias ahora si valida lo que quiero;
Tengo otra duda no se si esto se puede hacer javascript
tengo un campo e-mail; con el siguiente input:
Código PHP:
<input type='text' class='form' size='42' name='correo' value='<?=$correo?>' />
en el cual debe ingresar la sintaxis de un correo es decir; [email protected]; pero como pueden ver ahi pueden ingresar abc; y lo acepta; lo que quiero es que emita un mensaje diciendo que se debe ingresar correctamente; y que acepte solo esa sintaxis; no se si eso se puede hacer con javascript o debo trasladar la duda a alguna otra parte del foro?.
  #17 (permalink)  
Antiguo 15/07/2009, 15:49
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

claro que se puede. en todo caso y antes de proseguir nunca olvides validar en el servidor la informacion enviada por usuario. la validacion en el cliente no sumplanta, y no deberia, la validacion en servidor. la razon por la que se hace validacion en cliente es para darle una repuesta immediata al usuario de que el dato ingresado es incorrecto, o correcto.

para validar un email sigue siendo con expresiones regulares:
Código:
<input name="mail" onchange="
var reg = /^[\w\.\-]+@[\w\.]+$/
if(!reg.test(this.value){
// resto del codigo para correo no valido;
}
" />
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #18 (permalink)  
Antiguo 15/07/2009, 15:59
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

quedaria mas o menos asi; pero no me muestra el alert.
Código PHP:
<input type='text' class='form' size='43' name='cor' value='<?=$cor?>' maxlength="50" onchange="var reg = /^[\w\.\-]+@[\w\.]+$/ if(!reg.test(this.value){ alert("Debe Ingresar un correo valido Ej:[email protected]");}"></input>
  #19 (permalink)  
Antiguo 15/07/2009, 16:30
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

los errores fueron:
- separacion de sentencias. falto un punto coma (;) luego de la expresion regular
- faltaba cerrar un parentesis del control if
- problema de comillas en el stirng, no puedes utilizar la misma con la que se inicia el valor de un atributo.
Código:
  <input type='text' class='form' size='43' name='cor' value='<?=$cor?>' maxlength="50" onchange="var reg = /^[\w\.\-]+@[\w\.]+$/; if(!reg.test(this.value)){ alert('Debe Ingresar un correo valido Ej:[email protected]');}" />
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #20 (permalink)  
Antiguo 15/07/2009, 16:37
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

hasta ahi todo bien; pero no se supone que cuando cambia de celda despues de mostrar el mensaje debe limpiar la caja y ubicar el cursor en esa caja; o estoy haciendo algo mal.
  #21 (permalink)  
Antiguo 15/07/2009, 17:15
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

eso lo tienes que determinar tu, la forma que tu quieras hacerlo es tu decision. en lo personal yo no obligaria al usuario llenar un campo menteniendole el foco en dicho campo porque es una practica muy molestosa para el usuario. en todo caso:
Código:
  <input type='text' class='form' size='43' name='cor' value='<?=$cor?>' maxlength="50" onchange="var reg = /^[\w\.\-]+@[\w\.]+$/; if(!reg.test(this.value)){ alert('Debe Ingresar un correo valido Ej:[email protected]'); this.value=''; this.focus();}" />
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 15/07/2009 a las 17:34 Razón: correccion gramatical
  #22 (permalink)  
Antiguo 15/07/2009, 17:29
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

claro lo que pasa es que yo a ese correo lo tomo como login; y seria un campo obligatorio si o si; en un formato determinado si o si; pero ya lo implemente; y en vez de quedarse en correo se va a clave el cursor.
Cita:
<input type='text' class='form' size='42' name='login' value='<?=$login?>' onchange="var reg = /^[\w\.\-]+@[\w\.]+$/; if(!reg.test(this.value)){ alert('Debe Ingresar un correo valido Ej:[email protected]'); this.value=''; this.focus();}"/>
  #23 (permalink)  
Antiguo 19/09/2009, 18:54
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

que tal; estoy intentando validar; que solo acepte letras; espacios y la letra ñ ya sea mayuscula o miniscula pero no funciona aquie el codigo.
Cita:
reg = /[^a-zñ\x20]/gi;
alguna forma de hacer eso porfavor
  #24 (permalink)  
Antiguo 19/09/2009, 20:02
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

me funciona bien. ¿como lo estas usando? yo lo utilizo con test.
Código:
/[^a-zñ\x20]/gi.test("un texto pequeño"); // devuelve false;
/[^a-zñ\x20]/gi.test("numero&letra=9384"); // devuelve true;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #25 (permalink)  
Antiguo 20/09/2009, 10:03
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

lo que pasa es que de esta manera; tb me permite ingresar numeros; y en ese campo no deben haber numero solo letras con espacion incluida la ñ:
Cita:
onkeyup="var /[^a-zñ\x20]/gi; if(reg.test(this.value))this.value = this.value.replace(reg,'');"
ese es todo el onkeyup; pero ahi tb se ingresan numeros y eso no deberia de ser.
O quizas sea la caja de texto; al agregar me agregan todos los campos pero al momento de dar el boton editar; y deberia cargar la Ñ no carga me sale un simbolo en reemplazo de esa letra.
  #26 (permalink)  
Antiguo 20/09/2009, 10:27
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

a disculpen; no es un popup sino un ModalBox
  #27 (permalink)  
Antiguo 20/09/2009, 10:27
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

la expresion regular esta mas que bien escrita. lo que esta mal es que no lo tienes asignado a una variable.
Código:
var reg = /[^a-zñ\x20]/gi;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #28 (permalink)  
Antiguo 20/09/2009, 11:23
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
De acuerdo Respuesta: No valida Letras() ni numeros() en popup

Cita:
Iniciado por zerokilled Ver Mensaje
la expresion regular esta mas que bien escrita. lo que esta mal es que no lo tienes asignado a una variable.
Código:
var reg = /[^a-zñ\x20]/gi;
diculpen me comi el reg pero si estaba dentro de una variable; buscandole un solucion lo que enccontre y arregle para que que funcionara fue esto:
Cita:
var reg = /[^a-z \s\D]/;
Gracias por la ayuda
  #29 (permalink)  
Antiguo 20/09/2009, 11:38
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
Puntos: 1485
Respuesta: No valida Letras() ni numeros() en popup

pues la verdad no me hace sentido.
Código:
alert("numero&letra=9384".replace(/[^a-zñ\x20]/gi, ""));
// muestra "numeroletra";
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #30 (permalink)  
Antiguo 20/09/2009, 11:53
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No valida Letras() ni numeros() en popup

como les digo solo tiene que mostrar letras; no numeros
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 09:24.