Foros del Web » Programando para Internet » Javascript »

Ayuda...validaciones con 2 eventos onkeypress

Estas en el tema de Ayuda...validaciones con 2 eventos onkeypress en el foro de Javascript en Foros del Web. Hola amigos, muy buenas ...para pedirles por favor apoyarme con esto: 1. Tengo mi formulario con cajas de texto el cual valido la tabulacion (pasar ...
  #1 (permalink)  
Antiguo 13/04/2009, 16:13
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Pregunta Ayuda...validaciones con 2 eventos onkeypress

Hola amigos, muy buenas ...para pedirles por favor apoyarme con esto:
1. Tengo mi formulario con cajas de texto el cual valido la tabulacion (pasar cada caja con enter). Ahora quisiera implementarlo la validacion de k la primera caja no permita ingresar numeros y la segunda caja no permita ingresar letras...tonces lo implemente de esta manera:
Código php:
Ver original
  1. <table>
  2. <form name="form" id="form" action="index.php?p=8" method="post" onsubmit="return envia()">
  3. <tr bgcolor="#48A4FF" align="left" class="tit">
  4.     <td height="30" colspan=2>Datos del Destinatario</td>
  5. </tr>
  6. <tr>
  7.     <td width="35%">Apellidos y Nombres: </td>
  8.     <td width="65%" align="right"><input type="text" size="55" maxlength="50" name="destinatario" class="input_text" onKeypress="tabular(event,this),validaLet(event)">&nbsp<font color="red">(*)</td>
  9. </tr>
  10. <tr>
  11.     <td width="35%">Direcci&oacute;n de envio:</td>
  12.     <td width="65%" align="right"><input type="text" size="55" maxlength="50" name="direccion" onKeypress="tabular(event,this);validaNum(event)" class="input_text">&nbsp<font color="red">(*)</td>
  13. </tr>
  14. <tr align="center" valign="middle">
  15.      <td width="35%"></td>
  16.      <td width="15%"><input type="button" value="Anterior" onclick="history.go(-1)"></td>
  17.      <td width="15%"><input type="submit" name="Confirmar" value="Confirmar"></td>
  18.      <td width="35%"></td>
  19. </tr>
  20. </table>
  21. </form>
Aki el codigo js:
Código php:
Ver original
  1. function validaLet(e){
  2.     tecla = (document.all) ? e.keyCode : e.which;
  3.     if (tecla==8) return true; //Tecla de retroceso (para poder borrar)
  4.     patron = /\d/; // Solo números
  5.     te = String.fromCharCode(tecla);
  6.     if(patron.test(te)){
  7.         alert('Acepta solo letras');
  8.         return false;
  9.     }
  10. //  return patron.test(e);
  11. }
  12. function validaNum(e){
  13.     tecla = (document.all) ? e.keyCode : e.which;
  14.     if (tecla==8) return true;
  15.     patron =/[A-Za-zñÑ\s]/; // Solo letras, incluye ñ y Ñ, ademas barra espaciadora
  16.     te = String.fromCharCode(tecla);
  17.     if(patron.test(te)){
  18.         alert('Acepta solo numeros');
  19.         return false;
  20.     }
  21. }
  22. function validaVacio(){
  23.     if(document.form.destinatario.value==""){
  24.         alert("Ingrese Apelidos y Nombres");
  25.         form.destinatario.focus();
  26.         return false;
  27.     }
  28.     if(document.form.direccion.value==""){
  29.         alert("Ingrese Direccion");
  30.         form.direccion.focus();
  31.         return false;
  32.     }
  33.     return true;
  34. }
  35. function confirma(){
  36.     if(confirm('¿Desea imprimir el pedido?'))
  37.         print();
  38.     if(confirm('¿Esta seguro de confirmar su pedido?'))
  39.         return true;
  40.         return false;
  41. }
  42. function envia(){
  43.     if(validaVacio()){
  44.         return confirma();
  45.     }
  46.     return false;
  47. }
Pero lo unico k me falla es k al dar tabulacion a una caja vacia me da alerta de validacion de la funcion validaVacio (del evento onsubmit)??? ojo k no estoy dando click en el boton submit...estoy dando enter en las cajas de texto.

Gracias de antemano,
  #2 (permalink)  
Antiguo 13/04/2009, 18:11
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: Ayuda...validaciones con 2 eventos onkeypress

¿Qué tienes en la función tabular()?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 14/04/2009, 07:31
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Ayuda...validaciones con 2 eventos onkeypress

Sorry, la funcion tabular es la sgte:
Código php:
Ver original
  1. function tabular(e,obj){
  2.     tecla=(document.all) ? e.keyCode : e.which;
  3.     if(tecla!=13) return;
  4.     frm=obj.form;
  5.     for(i=0;i<frm.elements.length;i++)
  6.         if(frm.elements[i]==obj){
  7.             if(i==frm.elements.length-1)
  8.                 i=-1;
  9.             break
  10.         }
  11.         if((frm.elements[i+1].disabled==true)||(frm.elements[i+1].type!='text'))
  12.             tabular(e,frm.elements[i+1]);
  13.         else
  14.             frm.elements[i+1].focus();
  15.         return false;
  16. }
Saludos,
  #4 (permalink)  
Antiguo 14/04/2009, 07:35
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: Ayuda...validaciones con 2 eventos onkeypress

Debajo de la línea 3 cancela el evento:
Código javascript:
Ver original
  1. if (e.preventDefault) {
  2.     e.preventDefault();
  3. } else {
  4.     e.returnValue = false;
  5. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 14/04/2009, 10:29
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Ayuda...validaciones con 2 eventos onkeypress

Bien David, realize las modificaciones de la funcion tabular y esto quedo:
Código php:
Ver original
  1. function tabular(e,obj){
  2.     tecla=(document.all) ? e.keyCode : e.which;
  3.     if(tecla!=13) return;
  4.     if(e.preventDefault){
  5.         e.preventDefault();
  6.     }else{
  7.         e.returnValue=false;
  8.     }
  9.     frm=obj.form; ...
Pero sigue en el mismo error???
  #6 (permalink)  
Antiguo 14/04/2009, 10:46
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: Ayuda...validaciones con 2 eventos onkeypress

¿Cuál es el error?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 14/04/2009, 11:29
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Ayuda...validaciones con 2 eventos onkeypress

El detalle esta en que al dar tabulaciones desde la primera caja de texto (vacio o con datos) al llegar a la ultima caja de texto (vacia o con datos) me sale el msje de alerta "Acepta solo números"?

Saludos,
  #8 (permalink)  
Antiguo 14/04/2009, 12:33
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Ayuda...validaciones con 2 eventos onkeypress

Que raro pareciera que como si encontrara otro "text", pero esa opcion no es válida...en todo el codigo no hay otro type="text".
Esto menciono a la linea 11 de la funcion tabular:
Código php:
Ver original
  1. if((frm.elements[i+1].disabled==true)||(frm.elements[i+1].type!='text'))
Que raro???
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 01:06.