Foros del Web » Programando para Internet » Javascript »

Error!

Estas en el tema de Error! en el foro de Javascript en Foros del Web. Hola amigos soy nuevo en esto de lenguajes para aplicaciones web, el tema es que he elegido php. Weno quiero realizar un javascript para revisar ...
  #1 (permalink)  
Antiguo 10/11/2004, 09:52
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
Error!

Hola amigos soy nuevo en esto de lenguajes para aplicaciones web, el tema es que he elegido php. Weno quiero realizar un javascript para revisar que todos los campos están escritos. Me han dicho que se ha de poner en la cabeza del html y luego poner lo onsubmit en la parte de la etiqueta del formulario. El tema es que cuando lo he ido a probar, sino relleno un campo, me aparece una lleva el navegador a una página con el código del javascript y eso no debería ser asi. Aquí les deo el código, espero que alguien me pueda ayudar. Muchas gracias.
<script language="JavaScript">
function validar() {
ingreso = new String();
ingreso = this.principal.NombreDeUsuario;

if (ingreso == "") {
alert("Debe introducir un nombre de usuario.");
return false;
}
else {
ingreso = this.principal.Password.value;

if (ingreso == "") {
alert("Debe ingresar una contraseña.");
return false;
}
}
}
</script>
</head>

<body bgcolor="#99cc99">
<form method="post" action="principal.php" name="formulario" onsubmit=\"return validar(this)">
  #2 (permalink)  
Antiguo 10/11/2004, 14:21
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, Sharik
Creo que debes poner
Código:
ingreso = this.principal.NombreDeUsuario.value 
al igual que has hecho con la contraseña.

No sé si será eso la causa de tu error
  #3 (permalink)  
Antiguo 10/11/2004, 14:36
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola Sharik, angsanchez.

Varias cositas adicionales:

1.- En JavaScript no es necesario que declares las variables, aunque yo también suelo hacerlo. Sin embargo, un string no hay necesidad de usarlo como objeto.
2.- El prefijo this siempre se refiere al elemento HTML donde esta ubicado el código. Si lo usas en un evento de un botón, por ejemplo, el this se refiere al botón en si, pero cuando lo usas en una función JavaScript pierde significado al menos al leer el código (además no se realmente que valor toma).
3.- Tu función debería retornar "true" si la verificación es exitosa.

Vistas ese par de cosillas, tu código se podría escribir mas claramente asi:

Código PHP:
<script language="JavaScript">
 function 
validar(){
  
ingreso document.principal.NombreDeUsuario.value;
  if (
ingreso == ""){
   
alert("Debe introducir un nombre de usuario.");
   return 
false;
  } else {
   
ingreso document.principal.Password.value;
   if (
ingreso == ""){
    
alert("Debe ingresar una contraseña.");
    return 
false;
   }
  }
  return 
true;
 }
</script> 
O con mayor claridad si usas un with:

Código PHP:
<script language="JavaScript">
 function 
validar(){
  
with (document.principal){
   if (
NombreDeUsuario.value == ""){
    
alert("Debe introducir un nombre de usuario.");
    return 
false;
   } else {
    if (
Password.value == ""){
     
alert("Debe ingresar una contraseña.");
     return 
false;
    }
   }
  }
  return 
true;
 }
</script> 
Saludos.
  #4 (permalink)  
Antiguo 10/11/2004, 14:52
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Una cosa más: ¿a qué se refiere "principal"? ¿No debría ser "formulario", que es el nombre del formulario?
  #5 (permalink)  
Antiguo 10/11/2004, 15:26
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Pues yo he asumido que el formulario se llamaba Principal, de no ser asi, habría que hacer el cambio correspondiente.

Saludos.
  #6 (permalink)  
Antiguo 10/11/2004, 17:37
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
Se agradecen vuestras ayudas, pero misteriosamente, me sigue sin funcionar. Les comento todo detalladamente porque debe ser una tontería, pero yo no caigo soy demasiado nuevo en en esto.

El tema es que estoy intentando hacer una aplicación web, basada en varias páginas, una de ellas es principal, y como bien indica su nombre es la página principal, que consta de dos campos de texto uno para el nombre de usuario y otro para la contraseña. Bien pues mi fin es hacer un javascript, que es la forma que me recomendaron porque conocer yo algo del lenguaje Java. Cree primero lo que es la página en html y bien ahora está el problema me dijeron que era conveniente que usara php y un javascript. La cuestión es ¿cómo lo uso? la página .htm se llama principal y el formulario también se llama principal, creo que en esto no hay ningún problema. Me dijero que para relacionar la función del javascript con el formulario tendría que poner:

<form method="post" action="principal.php" name="principal" onsubmit=\"return validar()">

Ahora bien el código que me escribistes Kaopectate es ya válido, con todo lo que te he dicho, y de ser asi, que he de ponerlo en un archivo aparte llamado principal.php o(según me dijeron) ponerlo en el head de mi fichero .htm ¿?

Muchas gracias.
  #7 (permalink)  
Antiguo 10/11/2004, 18:44
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola de nuevo, Sharik
No capto qué es lo que te funciona y qué no.
Me temo que se te estén mezclando varias ideas o soluciones que te han dado.
A ver si lo aclaro:

1) La página de partida es en la que va todo el código que hemos estado discutiendo. No importa cómo se llame (principal.htm o como sea). Tampoco importa que el formulario se llame igual.

2) En esa página debe ir incluido el código javascript (<script language="JavaScript"> etc.) dentro del <head>, y el código del formulario (<form etc.) dentro del <body>.
Tal como está la función 'validar' del último código de Kaopectate, debes llamarla con
<form ..... name="principal" onsubmit=\"return validar()">
y no con
name="formulario"
ni con
onsubmit=\"return validar(this)">


3) Si no tienes un archivo 'principal.php' y no sabes para qué lo quieres, puede que no lo necesites (depende del punto 4). La validación ya la estás haciendo con el javascript de la cabecera del documento.

4) ¿Qué quieres que ocurra una vez verificado que se han introducido el nombre y la contraseña? ¿Abrir una nueva página?
Si esa nueva página fuese 'principal.php', no sé gran cosa de PHP, pero creo que al devolver la función validar un false quizás no se envíe el formulario, es decir, no se llame a 'principal.php', y sí se haga si devuelve un true. Ahora bien, si tu único propósito es validar los datos ¿qué debe hacer después tu página? Puede que te sobre lo de
method="post" action="principal.php"
  #8 (permalink)  
Antiguo 11/11/2004, 14:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
Lo que quiero es simplemente probar un javascript para ver, que los campos está rellenados una vez que eso es verdadero, comparo los datos de los campos obtenidos con una base de datos, si está en la base de datos me llevará a una página nueva. Y no, esa nueva página no se llama principal.php, se llama administrador.htm
  #9 (permalink)  
Antiguo 11/11/2004, 15:17
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola de nuevo Sharik.

Lo de comparar los campos con la base de datos lo debes hacer con un lenguaje servidor (usualmente PHP o ASP). De resto, podría ser algo como esto:

Código PHP:
<html
 <
head
  <
script language="JavaScript"

   function 
validar(){ 
    var 
bOk true;
    
with (document.frm){ 
     if (
NombreDeUsuario.value == ""){ 
      
alert("Debe introducir un nombre de usuario."); 
      
NombreDeUsuario.focus();
      
bOk false
     } else { 
      if (
Password.value == ""){ 
       
alert("Debe ingresar una contraseña."); 
       
Password.focus();
       
bOk false
      }
     }
     if (
bOk)
      
submit();
    }
   } 

  
</script> 
 </head> 
 <body> 
  <form name='frm' action='administrador.htm'> 
   Usuario
   <input type='text' name='NombreDeUsuario'>
   <br>
   Password
   <input type='password' name='Password'>
   <br>
   <input type='button' name='enviar' value='Enviar' onclick='validar()'>
  </form> 
 </body> 
</html> 
Saludos.
  #10 (permalink)  
Antiguo 11/11/2004, 16:26
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
Joe Kaopectate, no te lo curres tanto, que me pones incluso en una posición embarazosa, jeje. Por cierto para que cuando ponga el código aqui para exponer mi problema, salgo en una ventanita como el que tu pones como se hace??

Por cierto el tema, es que si es una contraseña va a la pagina Administrador.htm y sino puede ir también a Profesores.htm.

Gracias de nuevo!!
  #11 (permalink)  
Antiguo 11/11/2004, 19:25
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Sharik, salvo la primera línea y la última, lo demás casi que no lo he entendido...

¿de cual ventanita hablas?

  #12 (permalink)  
Antiguo 12/11/2004, 06:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
La ventanita del código PHP!
  #13 (permalink)  
Antiguo 12/11/2004, 17:00
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Cita:
Iniciado por Sharik
La ventanita del código PHP!
Sharik, después de darle al botón "Responder" busca otro que dice "Modo avanzado" o "Ir a avanzado", te saldrá un editor de texto, selecciona el texto de código y pulsa el icono <> de arriba si es código HTML, o el icono # si es otro código.
  #14 (permalink)  
Antiguo 12/11/2004, 18:08
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Tambien puedes hacerlo manualmente poniendo [ php ] antes del código y [ /php ] despues del código (sin los espacios en blanco que he dejado intencionalmente para que veas los tags).

Saludos.
  #15 (permalink)  
Antiguo 13/11/2004, 10:58
 
Fecha de Ingreso: octubre-2004
Mensajes: 168
Antigüedad: 19 años, 6 meses
Puntos: 0
Muchas 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 20:57.