Foros del Web » Programando para Internet » Javascript »

Llamar a codigo

Estas en el tema de Llamar a codigo en el foro de Javascript en Foros del Web. Buenas tengo este codigo para comprobar que un email este bien escrito, solo que yo lo llamaba cuando le daban al boton enviar del formulario. ...
  #1 (permalink)  
Antiguo 06/09/2005, 12:00
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Llamar a codigo

Buenas tengo este codigo para comprobar que un email este bien escrito, solo que yo lo llamaba cuando le daban al boton enviar del formulario. Este es el codigo:

Código HTML:
function comprobar_email(this){ 
    $mail_correcto = 0; 
    //compruebo unas cosas primeras 
    if ((strlen(this) >= 6) && (substr_count(this,"@") == 1) && (substr(this,0,1) != "@") && (substr(this,strlen(this)-1,1) != "@")){ 
       if ((!strstr(this,"'")) && (!strstr(this,"\"")) && (!strstr(this,"\\")) && (!strstr(this,"\$")) && (!strstr(this," "))) { 
          //miro si tiene caracter . 
          if (substr_count(this,".")>= 1){ 
             //obtengo la terminacion del dominio 
             $term_dom = substr(strrchr (this, '.'),1); 
             //compruebo que la terminación del dominio sea correcta 
             if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){ 
                //compruebo que lo de antes del dominio sea correcto 
                $antes_dom = substr(this,0,strlen(this) - strlen($term_dom) - 1); 
                $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); 
                if ($caracter_ult != "@" && $caracter_ult != "."){ 
                   $mail_correcto = 1; 
                } 
             } 
          } 
       } 
    } 
    if ($mail_correcto) 
       {  
	     alert ("E-mail Incorrecto. Introduzca un correo valido. Ademas debes borrar la marca de 'Acepto todo lo expuesto' y volverla a marcar, para que se pueda habilitar el boton 'Registrar'");
		 return 1;
	   }
    else 
       { return 0; }
} 
</script> 
pero ahora quiero llamar a este codigo cuando la pesonas terminen de escribir ahi en ese textbox y cambien a otro, asi no hay que esperar a que ellos le den a ENVIAR para verificar si escribio bien el email en el formulario. Para este puse este codigo:

Código HTML:
<input name="txtmail" type="text" id="txtmail" size="20" maxlength="150"  onChange="comprobar_email(this)"> 
Pero no me pasa nada ¿que puedo hacer?
Gracias
BYE
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #2 (permalink)  
Antiguo 06/09/2005, 12:15
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Jeremias

Prueba con esto:
Código PHP:
<input name="txtmail" type="text" id="txtmail" size="20" maxlength="150"  onblur="comprobar_email(this.value)"
Saludos,
  #3 (permalink)  
Antiguo 06/09/2005, 12:29
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Ya lo probe y no me resulto, si le doy doble click abajo en la barra de estado donde sale el simbolo de error me dice que en la linea 63 el error es SE ESPERABA UN IDENTIFICADOR y esta linea lo que tiene es:

function comprobar_email(this){

en la linea 97 dice SE ESPERABA UN OBJETO y lo que hay en esa linea es:

<body bgcolor="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_scout%20de%20vnzla_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_cruz%20roja_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_defensa%20civil_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_red%20de%20esc%20asociadas_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_clubes%20unesco_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_tec%20de%20inf%20y%20com_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_infocentro%20sin%20bp_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_infocentro%20en%20bp_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_bibliotecas%20publicas_f2.gif','file://///Jeremias/JEREMIAS%20(C)/Documents%20and%20Settings/Jeremias/Escritorio/Proyecto%20Unesco/imagenespu/boton_derechos%20del%20nino_f2.gif','imagenespu/menumenu/menumenu_r1_c1_f2.gif','imagenespu/menumenu/menumenu_r2_c1_f2.gif','imagenespu/menumenu/menumenu_r4_c1_f2.gif','imagenespu/menumenu/menumenu_r5_c1_f2.gif','imagenespu/menumenu/menumenu_r6_c1_f2.gif','imagenespu/menumenu/menumenu_r8_c1_f2.gif','imagenespu/menumenu/menumenu_r9_c1_f2.gif','imagenespu/menumenu/menumenu_r10_c1_f2.gif','imagenespu/menumenu/menumenu_r11_c1_f2.gif','imagenespu/menumenu/menumenu_r12_c1_f2.gif')">

y el tercer y ultimo erro es en la linea 818 que dice SE ESPERABA UN OBJETO y esa linea tiene:

<td colspan="6" rowspan="4" valign="top" bordercolor="#0099CC"><input name="txtmail" type="text" id="txtmail" size="20" maxlength="150" onBlur="comprobar_email(this.value)"></td>

Tambien yo probe lo que me dijistes on ONKEYPRESS y sus variantes o semejantes, de verdad no se que pasa
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #4 (permalink)  
Antiguo 06/09/2005, 12:37
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

No me había fijado, pero parece que el código que pusiste es PHP No puedes llamarlo desde un evento JavaScript. Echa un vistazo a las FAQs, allí tienes algunos códigos para validar e-mail.

Saludos,
  #5 (permalink)  
Antiguo 06/09/2005, 13:02
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
En primera, debes tener muy en cuenta ke el codigo de PHP se va a ejecutar en el lado del server, el codigo en javascript a menos que no le especifikes en el tag de <script runat=server> se estara ejecutando en el lado del cliente, PHP una vez ya procesado por el server arroja al cliente codigo HTML puro...

Bueno despues del momento cultural deja te digo cual es tu solucion:

en tu caja de texto:
<input name="txtmail" type="text" id="txtmail" size="20" maxlength="150" onblur="comprobar_email(this)">

en tu script
<script languaje="javascript">
function comprobar_email(myfield){
var mailValido = new String(myfield.value);
if (mailValido.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig)) {
alert("introduzca una direccion de correo válida");
myfield.focus();
} else { return; }
}

</script>

Espero te sirva mi sugerencia
__________________
Yo tan sólo se, que no he senado
  #6 (permalink)  
Antiguo 06/09/2005, 19:32
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Hermano me has salvado la vida, de verdad que gracias, todo me funciono segun lo que me dijistes, gracias de nuevo
Hasta Luego.
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
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 10:25.