2014-04-22 41 views
2

值1,我有以下形式。長度顯示在JavaScript

<form name="client-login" method="post" onsubmit="return Check_form();"> 
    <label>Email</label><input type="text" name="client-email" value=""><br/> 
    <label>Password</label><input type="password" name="password" value=""> 
    <input type="submit" name="submit" value="submit""> 
</form> 

及以下的javascript函數Check_form()

<script> 
function Check_form() 
{ 
    var email = document.getElementsByName("client-email"); 
    var password = document.getElementsByName("password"); 
    alert(email.length); 
    if(email.length == null) 
    { 
     email.style.border='1px solid red'; 
     return false; 
    } 
    else if(password.length == null) 
    { 
     password.style.border='1px solid red'; 
     return false; 
    } 
    return false; 
} 

</script> 

但是,儘管我與空字段在提交於提醒值1客戶端電子郵件。 任何想法是什麼錯誤。

+0

[* getElementsByName *](http://www.w3.org/TR/2008/WD-返回所述第一元件html5-20080610/dom.html#getelementsbyname)返回一個NodeList,它的長度是一個整數,因此永遠不會* null *,因此可以考慮使用if(email.length == 0)或if(!email.length) 。 – RobG

回答

5

在你採取其中包含一個名爲「客戶端的電子郵件」的電子郵件文本字段的數組電子郵件可變上述JS。

要檢查電子郵件lentgh使用這樣的:

alert(email[0].value.length); 
+0

它實際上是一個數組。數組的第一個索引包含電子郵件文本字段對象。 –

+0

@jsve你是對的,這就是爲什麼我使用0索引。我現在編輯過,我覺得這很好。 –

+0

那麼這是一個最佳解決方案嗎? – Amit

2

document.getElementsByName()返回數組

所以你的情況使用document.getElementById()

3

document.getElementsByName()返回節點列表。

要麼使用document.getElementById()

可以使用document.getElementsByName("client-email")[0]其將從該節點列表