Foros del Web » Programando para Internet » Javascript »

Una ayuda por favor.

Estas en el tema de Una ayuda por favor. en el foro de Javascript en Foros del Web. Hola amigos. Tengo un formulario llamado formpass y un campo llamado passw donde va la contraseña. Para comprobarlo tengo esto: Cita: function comprobarpass() { pass=formpass.passw.value ...
  #1 (permalink)  
Antiguo 23/03/2008, 14:19
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Una ayuda por favor.

Hola amigos. Tengo un formulario llamado formpass y un campo llamado passw donde va la contraseña. Para comprobarlo tengo esto:

Cita:
function comprobarpass() {

pass=formpass.passw.value
if ( pass == 'admin' ) {
location.href='taller/index.html'
}
else {
location.href='error.html'
}
}
el formulario no tiene ni action ni method. Probé con onsubmit y ahora lo tengo con el onclick en el botón ENTRAR.

No me funciona, sólo me envía a la página de error. Si la pongo bien no hace nada. ¿Qué puedo hacer=
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #2 (permalink)  
Antiguo 23/03/2008, 16:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 342
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: Una ayuda por favor.

Cita:
Iniciado por CHuLoSoY Ver Mensaje
Hola amigos. Tengo un formulario llamado formpass y un campo llamado passw donde va la contraseña. Para comprobarlo tengo esto:



el formulario no tiene ni action ni method. Probé con onsubmit y ahora lo tengo con el onclick en el botón ENTRAR.

No me funciona, sólo me envía a la página de error. Si la pongo bien no hace nada. ¿Qué puedo hacer=
te falta el punto y coma

function comprobarpass() {

pass=formpass.passw.value;
if ( pass == 'admin' ) {
location.href='taller/index.html'
}
else {
location.href='error.html'
}
}
  #3 (permalink)  
Antiguo 23/03/2008, 16:49
Avatar de flanagan44  
Fecha de Ingreso: abril-2004
Mensajes: 182
Antigüedad: 20 años
Puntos: 2
Re: Una ayuda por favor.

Un consejo
No es la forma mas segura de hacer eso.

Piensa que si miran el codigo fuente de la pagina o del archivo donde tengas el script veran el password correcto para ir a la zona correcta.

Venga un saludo
  #4 (permalink)  
Antiguo 23/03/2008, 17:44
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Una ayuda por favor.

Lo sé, es para un proyecto de clase con unas funciones. Lo de las comillas funciona en IE xD pero no en Firefox.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #5 (permalink)  
Antiguo 23/03/2008, 18:41
Avatar de richi ramone  
Fecha de Ingreso: febrero-2007
Ubicación: Escobar (Bs.As. Argentina)
Mensajes: 3
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Una ayuda por favor.

Buenas... antes que nada te recomiendo que si bien javaScript te permite escribir codigos sin el corte de linea ";" te recomiendo lo uses ya que a la hora de programar nada que sea prolijo esta de mas.

Sobre tu problema... para que en firefox te funcione esta funcion tuve que modificar algunas cosas.

1 - A la variable pass no la habias ruteado completamente, es decir para que Firefox te tomo el value de ese texto le tendrias que haber agregado "document.", con lo cual te quedaria "document.formpass.passw.value;"

2 - La funcion tendrias que ejecutarla en el submit del form.
Asi: "onsubmit="return comprobarpass()",
pues si la ejecutas desde un boton que no sea submit y con el evento onclick tendrias el problema de que al escribir en el textbox y hagas enter en vez de clickear el boton, se ejecutaria el evento submit y no el onclick.

3 - Como veras el evento onsubmit requiere que le devuelvas un valor (true o false) para que este se ejecute o se interrumpa. Por eso al final de la funcion agregue return(false).

4 - La otra cosa que te recomiendo es que al location le antepongas "window." y el href no hace falta pero no hace diferencia.

Este es el codigo HTML andando tanto en IE como en FIREFOX.
Espero haberte ayudado. SAludos

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" language="javascript">
function comprobarpass()
{
pass = document.formpass.passw.value;

if (pass == 'admin' )
{
window.location = "taller/index.html";

}
else
{
window.location = "error.html";
}
return (false);
}
</script>
</head>

<body>
<form name="formpass" onsubmit="return comprobarpass()" >
<input type="text" id="passw" name="passw" />
<input type="submit" value="enviar" />
</form>
</body>
</html>
  #6 (permalink)  
Antiguo 23/03/2008, 19:02
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Una ayuda por favor.

Joer eres un crack! gracias tío. La verdad es que no soy muy experto en javascript, y como el IE se pasa por el forro los estándares y funciona todo así no hay quien aprenda ;)

Un saludete y gracias!"
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #7 (permalink)  
Antiguo 23/03/2008, 19:16
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Re: Una ayuda por favor.

Por cierto, aprovecho y te pregunto: porqué en firefox no me funciona este código?
te dejo aquí el código que he modificado con tu ayuda (gracias).

Cita:
function comprobarpass(accion,contrasena) {
if (accion == 'prompt') {
if (contrasena=='admin') {
window.location='taller/index.html'
}
else {
window.location='error.html'
}
return (false);
}
if (accion == 'form') {
pass=document.formpass.passw.value;
if (pass=='admin') {
window.location='taller/index.html'
}
else {
window.location='error.html'
}
}
return (false);
}

function meterpass() {
var escribir = prompt('Introduzca la contraseña: ', 'admin');
if(escribir) {
comprobarpass('prompt',escribir);
}
}
EL ERROR ME LO DA EN LA FUNCIÓN meterpass()


Gracias de nuevo amigo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #8 (permalink)  
Antiguo 23/03/2008, 21:30
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Una ayuda por favor.

Cita:
Iniciado por CHuLoSoY Ver Mensaje
el formulario no tiene ni action ni method
Lo siento, he leído ésto y no puedo leer más. El atributo action es obligatorio, y debe contener una URI, nada de código javascript (lo digo por si las moscas). El method no hay por qué colocarlo, se asume que va a tener valor GET.

Si empezamos por tener un documento mal estructurado, luego los problemas se irán multiplicando...
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #9 (permalink)  
Antiguo 24/03/2008, 00:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Una ayuda por favor.

Cita:
Iniciado por derkenuke Ver Mensaje
... y debe contener una URI, nada de código javascript ...
Hola:

Aunque es cierto, en muchas ocasiones (sobre todo en mis pruebas) pongo cosas así:

<form action="javascript: alert('Se ha simulado el envío del formulario...')" ...

Insisto en que solo lo uso para hacer pruebas, pero no solo es obligatorio (siempre preferible) que tenga action, sino que también se debe enviar con un botón del tipo submit, ya que cualquier otra forma de envío se considera "inaccesible".

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 17:46.