2014-10-08 59 views
0

我想製作一個簡單的驗證表單,但是我得到了一個我無法修復的錯誤。當我點擊一個登錄元素後,我想要一個login_window出現(從display:none更改爲display: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)爲什麼登錄窗口會一直隱藏,只要我點擊提交?

2)爲什麼我的驗證表單不工作?

謝謝

+0

回答第1個問題:'login_window.style.display =「none」;' – melancia 2014-10-08 16:21:35

+1

只需指出...從不在真實世界*應用程序上使用javascript用戶名/密碼驗證,因爲它可以被任何人讀取.... – LcSalazar 2014-10-08 16:22:06

+0

你有一個時間問題:未捕獲ReferenceError:validate_login沒有定義 – isherwood 2014-10-08 16:36:06

回答

0

如果你移動你的函數體內所謂的可行時,它的工作原理。

Demo

No wrap - in <body> 

另外,請修復您的comma splice。爲什麼程序員非常喜歡在警報消息中使用它們? :-)

+0

非常感謝你:) – user3786923 2014-10-08 21:05:58

+0

還請原諒我,但即時通訊仍然新與programmin,你能告訴我如何做到這一點在瀏覽器中? – user3786923 2014-10-08 21:09:26

+0

這意味着您只需在結束標籤「」前添加'