2014-01-12 43 views
1

我對此有着許多麻煩,而且我嘗試了很多不同的方法來做到這一點,並且我只是用完了想法。如何比較表單元素與if語句中的字符串

這裏是我的代碼:

var user = document.Log.User; 
var pass = document.Log.Pass; 

function Login(){ 
if(user.value == "Admin"){ 
window.open(); 
} 
} 

這裏是HTML的一面:

<form name="Log"> 
     <input class="Log" type="text" name="User"> 
    <input class="Log" type="password" name="Pass"> 
    <input type="button" value="Login" name="But" onclick="Login()" style="width: 70px;position: relative;left: 150px;top: -25px;"> 
</form> 
+0

是在身體之前還是之後的Javascript? – Barmar

+0

是什麼問題? –

回答

1

使用ID選擇的把你的變量賦值內登錄功能:

HTML:

<form name="Log"> 
    <input id="User" class="Log" type="text" name="User"> 
    <input id="Pass" class="Log" type="password" name="Pass"> 
    <input type="button" value="Login" name="But" onclick="Login()" style="width: 70px;position: relative;left: 150px;top: -25px;"> 
</form> 

JS:

function Login(){ 
    var user = document.getElementById("User"); 
    var pass = document.getElementById("Pass"); 

    if(user.value == "Admin"){ 
     window.open(); 
    } 
} 
+0

你爲什麼認爲這會有所作爲?訪問表單元素的舊風格仍然有效。 – Barmar

+0

那麼'document.getElementByName('User')[0]'呢?此外,你拼寫'元素'錯誤 – Cilan

+0

然後我應該學習更多關於javascript :) –

1

如果你的變量賦值是JavaScript時身體之前加載,那麼它們指向的元素不存在着呢,你應該得到的錯誤。有很多方法可以解決此問題:

  1. 將Javascript放在表單後的某個位置。
  2. 把Javascript放入window.onload=function() { ... }
  3. 指定Login()函數中的變量。
0

我不知道你爲什麼做這種登錄邏輯的東西與JS,但是,這會工作:

function Login(){ 
    var user = document.querySelector('form[name=Log] [name=User]'); 
    var pass = document.querySelector('form[name=Log] [name=Pass]'); 

    if(user.value == "Admin"){ 
    window.open("yoururl.com"); 
    } 
} 

希望這有助於。歡呼聲