2014-10-08 2 views
0

Я хочу сделать простую форму проверки, но у меня возникла небольшая ошибка, которую я не могу исправить. После того, как я нажму на элемент входа, я хочу, чтобы появился login_window (изменение с дисплея: none для отображения: block). После этого я хочу, чтобы логин и пароль вводились. Когда я заполняю это чем-то другим, кроме «имени пользователя» и «пароля», он должен показывать мне предупреждающее сообщение. Вместо этого он продолжает прятать login_window даже тогда, когда нет никакой формы (я просто нажмите на кнопку отправить и login_window скрыт)Скрыть/Показать форму проверки вопроса

HTML:

<div id="login_window"> 
    <form name="login_form" onsubmit="return validate_login()" method="post"> 
     <label>Login</label> 
     <input type="text" name="usr" placeholder="username"><br> 
     <label>Sign In</label> 
     <input type="text" name="psw" placeholder="password"><br> 
     <input type="submit" value="Submit"> 
    </form> 
</div> 

CSS:

#login { 
    position:absolute; 
    width:65px; 
    height:26px; 
} 


#login_window { 
    position:absolute; 
    width:400px; 
    height:460px; 
    background-color:#F0F0F0 ; 
    z-index:2; 
} 

JS:

var login = document.getElementById("login"); 
var login_window = document.getElementById("login_window"); 
login_window.style.display = "none"; 

login.addEventListener("click",function(){  
    login_window.style.display = "block"; 
}); 


function validate_login(){ 
    var un = document.login_form.usr.value; 
    var pw = document.login_form.psw.value;           
    var username = "username"; 
    var password = "password"; 
    if((un == username) && (pw == password)){ 
     return true; 
    }else{ 
     alert("Login was unsuccesful, please enter the corrent name and password."); 
     return false; 
    }  
} 

Вот Fiddle

Несмотря на то, что он работает по-разному в скрипке, чем в моем браузере, у меня есть два вопроса.

1) Почему login_window скрывается всякий раз, когда я нажимаю кнопку «Отправить»?

2) Почему не работает моя форма проверки?

Спасибо

+0

Ответ на ваш первый вопрос: 'login_window.style.display =" none ";' – melancia

+1

Просто указать ... Никогда не используйте проверку имени пользователя и пароля javascript в приложении * real world *, поскольку это может читайте кто-нибудь .... – LcSalazar

+0

У вас есть проблема с синхронизацией: Неотпущено ReferenceError: validate_login не определено – isherwood

ответ

0

Если вы переместите функцию в теле, так это доступно при вызове, он работает.

Demo

No wrap - in <body> 

Кроме того, пожалуйста, исправить comma splice. Почему программисты так любят использовать их в предупреждающих сообщениях? :-)

+0

Большое спасибо :) – user3786923

+0

тоже, простите меня, но я все еще новичок в programmin, не могли бы вы рассказать мне, как это сделать в браузере? – user3786923

+0

Это просто означает, что вы должны добавить тег '

Смежные вопросы