Ayuda con javascript.

Iniciado por Akise, 22 Junio 2013, 16:39 PM

0 Miembros y 1 Visitante están viendo este tema.

Akise

Hola... me estoy volviendo loco, pues no encuentro el error... pero, ¿podría alguien orientarme o decirme que pasa en el siguiente código?

Código (javascript) [Seleccionar]

<script type="text/javascript">
function Cp(){
var user = document.Formulario.user.value;
var pass = document.Formulario.pass.value;
var userP = "12aBc";
var passU = "CdDrR";
var passReal = "RaFfFa";

if(user == passReal) && (pass == userP+passU){
alert("Contraseña y usuario correctas");
    document.location=userP+passU".html";
    }else{
    alert("Contraseña y/o usuario incorrecta");
        user.value = "";
                pass.value = "";
    }}
</script>

<title>Nivel 3</title>
<h3>Pista: ¡Cuidado! Las variables te pueden engañar.</h3>

<form name="Formulario" onsubmit="return false;">
<input name="user"><br>
<input type="password" name="pass"><br>
<input type="button" value="Ingresar" OnClick="Cp()">
</form>


Obviando el hecho de que he quitado las etiquetas de Html, head, y body (en este código, no en el real) preguntar, que es lo que está pasando.

Lo suyo debería ser, que hubiese 2 cajas de texto, una con letra normal y otra con los asteriscos (type password). Y que, para sacar la contraseña, del formulario user, tengan que poner el string de la variable passReal y a su vez, en el formulario pass, tengan que poner las variables userP+passU, quedando así, como único resultado a la siguiente página;

Usuario =  RaFfFa
Password = 12aBcCdDrR

Dónde en el caso de no escribir ésto, salta una alerta diciendo ''contraseña y/o usuario incorrecto'' y pone lo anteriormente escrito en blanco. (user.value = ""; {...}) y en el caso de haber ingresado lo correcto, salte una alerta de ''Contraseña correcta'' y redireccione a la página userP+passU+".html" , es decir,  ruta{...}/12aBcCdDrR.html

El problema radica, en que al hacer click al button, no sucede absolutamente nada. ¿Cuál es el problema? Gracias de antemano.

Akise

#1
Olvidando lo anterior mencionado, alguien podría explicarme porque pasa esto;

Código (javascript) [Seleccionar]

<script type="text/javascript">
function Comprobar(){
var user = document.Formulario.user.value;
var pass = document.Formulario.pass.value;
var b = "Nv2";
var c = "Nv3";

if((user != b) && (pass != c )){
alert("Contraseña incorrecta");
user.value = "";
pass.value = "";
}else{
alert("Contraseña correcta");
document.location=user+b+".html";
}}
</script>

<form name="Formulario" onsubmit="return false;">
<input name="user">
<input name="pass" type="password">
<input type="button" value="Confirmar" OnClick="Comprobar()">
</form>


Funciona todo bien, pero se supone que la condicion con el operador lógico && debería cumplirse las dos condiciones, pero... si sólo se cumple una, también permite el paso al document.location, dando una alerta de que la contraseña es correcta. ¿A que se debe?


EDITO:


Después de estar haciendo 20mil pruebas, se me ocurrió cambiar el  operador lógico != por ==, de esta forma si que le el && y lo hace funcionar como AND y no como OR.

Gracias igualmente, un saludo!.