Foros del Web » Programando para Internet » Javascript »

Javascript no se ejecuta, ni al servlet tampoco

Estas en el tema de Javascript no se ejecuta, ni al servlet tampoco en el foro de Javascript en Foros del Web. Hola, estoy en algo bien básico pero con problemas. Validar los campos de un formulario para luego invocar al servlet. El tema es que no ...
  #1 (permalink)  
Antiguo 12/11/2009, 12:32
 
Fecha de Ingreso: enero-2004
Ubicación: Montevideo
Mensajes: 58
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta Javascript no se ejecuta, ni al servlet tampoco

Hola, estoy en algo bien básico pero con problemas. Validar los campos de un formulario para luego invocar al servlet.

El tema es que no ejecuta el servlet aun cuando ingreso bien los datos, le doy click al botón y ahí queda. Y tampoco el javascript me está chequeando todos los casos.
La idea es validar un email.

Script
Código:
<script type='text/javascript'>
    function validarEmail(str) {

		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);

		if (str.indexOf(at)==-1)
                {
		   alert("Formato no valido de Email")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Formato no valido de Email");
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Formato no valido de Email");
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Formato no valido de Email");
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Formato no valido de Email");
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Formato no valido de Email");
		    return false;
		 }

		 if (str.indexOf(" ")!=-1){
		    alert("Formato no valido de Email");
		    return false;
		 }

 		 return true;
	}
   
     function validarDatos()
     {
	var emailID=document.miForm.NombreUsuario

	if ((emailID.value==null)||(emailID.value=="")){
		alert("Debe ingresar el email");
		emailID.focus();
		return false;
	}
	if (validarEmail(emailID.value)==false){
		emailID.value="";
		emailID.focus();
		return false;
	}       
	return true;
     }
Formulario html

Código:
<form name="frmLogging" method="post" action="loginUsuario" onClick="return validarDatosl()" >
          <br>
          Email *
          <input type="text" name="NombreUsuario" value="" size="8" />
          <br>
          PassWord *
          <input type="password" name="PassWord" value="" size="8" />
          <br><br>         
          <input type="button" name="btnEnviar" value="Enviar">
      </form>
loginUsuario es el nombre del servlet, si no cheque los datos, lo ejecuta perfectamente, el path es correcto.
Pero con la opción de validar con javascript nunca llego al servlet.
Llegué a escribir esta línea dentro del javascript. pero tampoco me anduvo.

Código:
document.forms[frmLoggin].submit();
Les agradezco su ayuda, saludos
  #2 (permalink)  
Antiguo 12/11/2009, 13:21
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Javascript no se ejecuta, ni al servlet tampoco

Hola,

Cita:
Iniciado por kovicic Ver Mensaje
Código:
<script type='text/javascript'>
     function validarDatos()
     {
	var emailID=document.miForm.NombreUsuario
...
     }
Código:
<form name="frmLogging" method="post" action="loginUsuario" onClick="return validarDatosl()" >
...
Vuelve a revisar todo el script completamente. Para comenzar no estas leyendo el nombre del formulario correcto, en Javascript escribes miForm y en el HTML se llama frmLoggin, y posiblemente el nombre de la función no coincide tampoco.

Saludos,
  #3 (permalink)  
Antiguo 12/11/2009, 13:25
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: Javascript no se ejecuta, ni al servlet tampoco

adicional, el evento deberia ser onsubmit, no onclick.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 12/11/2009, 16:05
 
Fecha de Ingreso: enero-2004
Ubicación: Montevideo
Mensajes: 58
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta Respuesta: Javascript no se ejecuta, ni al servlet tampoco

Sabes que hice lo que dices, y me pasa lo mismo.
a) modifiqué los errores del script
b)cambié onClick por onSubmit
c1) probé llamando al servlet desde el sript
c2) sin llamarlo desde el script.

El resultado en ambos casos es el mismo, aunque ingrese un mail correcto no salta al servlet, y si escribo un email = 2, no salta error.

¿Podrían decirme como se llama al servlet dentro de un script?
Hago algo asi:
document.forms[frmLoggin].submit();
return true;


Realmente ya no se qué mas probar. Gracias
  #5 (permalink)  
Antiguo 12/11/2009, 16:15
 
Fecha de Ingreso: enero-2004
Ubicación: Montevideo
Mensajes: 58
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Javascript no se ejecuta, ni al servlet tampoco

hola, cambié el el input type por submit, me está ejecutando el javascript correctamente, pero aunque de error, sale a una página que manda el servlet. O sea, que el servlet se ejecuta cuando no debería.

Esta es la línea del form ahora:
<input type="submit" name="btnEnviar" value="Enviar">
  #6 (permalink)  
Antiguo 12/11/2009, 16:17
 
Fecha de Ingreso: enero-2004
Ubicación: Montevideo
Mensajes: 58
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Javascript no se ejecuta, ni al servlet tampoco

Acabo de corregirlo y por ahora anda, debí llamar al script con return validarDato().
Gracias por sus aportes, saludos
  #7 (permalink)  
Antiguo 12/11/2009, 17:17
 
Fecha de Ingreso: enero-2004
Ubicación: Montevideo
Mensajes: 58
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Javascript no se ejecuta, ni al servlet tampoco

Una duda que me ha quedado, ¿por qué no me funciona con el evento onClick del input type = button?, gracias :)
  #8 (permalink)  
Antiguo 12/11/2009, 17:25
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Javascript no se ejecuta, ni al servlet tampoco

Hola,

Según la especificación del HTML, la etiqueta FORM no tiene el evento OnClick(). Es decir, no debería de existir ese evento para dicha etiqueta, pero algunos browsers sí lo implementan; aunque su funcionamiento es otro completamente diferente del evento onsubmit().

Por ejemplo:

Código:
<form action="" method="post" name="Usuarios"
onclick="return alert('You clicked the form somewhere.');">
<input name="Usuario" type="text" size="12" maxlength="40" />
</form>
...
Al hacer click con el mouse en cualquier lugar del formulario (en algunos browsers) presenta un mensaje de alert, pero no se ejecuta al enviar el formulario, para eso está el evento onsubmit().

Saludos,

ps:

El evento onclick() se ejecuta al enviar el formulario en algunos browsers !-- los que lo implementan, actualmente deberían ser todos --, puesto que el click en el botón 'Enviar' es también considerado parte del formulario.

Pero el valor retornado de la función onsubmit() define si al final el formulario se envía o no. Es decir, si escribes onsubmit="return false"; el formulario nunca se va a enviar, puesto que falso en ese evento previene su funcionamiento.

Pero si escribes onclick="return false;" no tiene importancia sobre el envío de dicho formulario, no importa si el evento se ejecutó porque presionaste el botón submit o cualquier otro lugar del formulario.

Última edición por HackmanC; 12/11/2009 a las 18:09 Razón: fe de errata
  #9 (permalink)  
Antiguo 12/11/2009, 17: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: Javascript no se ejecuta, ni al servlet tampoco

Cita:
Iniciado por HackmanC Ver Mensaje
Según la especificación del HTML, la etiqueta FORM no tiene el evento OnClick(). Es decir, no debería de existir ese evento, pero algunos browsers sí lo implementan...
aclarar algo sobre ese comentario. tecnicamente cualquier elemento puede contener cualquier evento. una cosa es si ese elemento puede o no producir el evento. pero desde XHTML ciertamente algunos elementos pueden tener ciertos eventos en linea (inline event). ahora bien, en el estandar XHTML si se define que FORM puede tener evento onclick.
Código:
<!ATTLIST form
  %attrs;
  action      %URI;          #REQUIRED
  method      (get|post)     "get"
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  onsubmit    %Script;       #IMPLIED
  onreset     %Script;       #IMPLIED
  accept      %ContentTypes; #IMPLIED
  accept-charset %Charsets;  #IMPLIED
  >

<!ENTITY % attrs "%coreattrs; %i18n; %events;">

<!ENTITY % events
 "onclick     %Script;       #IMPLIED
  ondblclick  %Script;       #IMPLIED
  onmousedown %Script;       #IMPLIED
  onmouseup   %Script;       #IMPLIED
  onmouseover %Script;       #IMPLIED
  onmousemove %Script;       #IMPLIED
  onmouseout  %Script;       #IMPLIED
  onkeypress  %Script;       #IMPLIED
  onkeydown   %Script;       #IMPLIED
  onkeyup     %Script;       #IMPLIED"
  >
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 12/11/2009, 17:59
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Javascript no se ejecuta, ni al servlet tampoco

Hola,

Cita:
Iniciado por zerokilled Ver Mensaje
aclarar algo sobre ese comentario. tecnicamente cualquier elemento puede contener cualquier evento.
Je,je.. perdón ... acabo de terminar de revisar la especificación y tienes razón, e inmediatamente lo iba a corregir. (Por eso dejé de usar Dreamweaver, realmente la referencía O'Reilly, muestra solamente onsubmit y onreset como posibles eventos). Realmente era alrevés ... la especificación SÍ lo permite, pero algunos browsers no lo implementan.

Saludos,

Última edición por HackmanC; 12/11/2009 a las 18:11 Razón: :-D
  #11 (permalink)  
Antiguo 12/11/2009, 20:39
 
Fecha de Ingreso: enero-2004
Ubicación: Montevideo
Mensajes: 58
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Javascript no se ejecuta, ni al servlet tampoco

Muy buenas las aclaraciones de ambos, pasando en limpio entendí que si bien el evento onClick es aceptado, no envía el formulario.
Agradezco me corrijan si no es asi, saludos :)
  #12 (permalink)  
Antiguo 12/11/2009, 20:52
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: Javascript no se ejecuta, ni al servlet tampoco

no solo no envia el formulario, mas importante aun que a traves de este evento no podemos manejar la verdadera accion de envio. es decir, intentar cancelar el envio de formulario a traves de onclick es imposible porque dicho evento no esta relacionado de alguna manera con el evento de envio. o sea, son dos entidades distintas y cada una responde a distintos sucesos. por tanto, el evento que maneja el envio es onsubmit y desde este podemos controlar si esa accion se llevara a cabo o no.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 12/11/2009 a las 21:04 Razón: errata
  #13 (permalink)  
Antiguo 12/11/2009, 22:20
 
Fecha de Ingreso: enero-2004
Ubicación: Montevideo
Mensajes: 58
Antigüedad: 20 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Javascript no se ejecuta, ni al servlet tampoco

clarísimo, gracias
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 11:23.