2011-09-22 42 views
1

我javscript驗證兩個選項。其中其中一個更好的用於驗證JavaScript驗證哪位一個是最好的(名稱或ID)

JavaScript驗證基於字段名稱

if(document.formname.uname.value=="") 
{ 
alert("Please Enter Username"); 
document.formname.uname.focus(); 
return false; 
} 

的Javascript基於ID的驗證

if(document.getElementById('uname').value=="") 
{ 
alert("Please Enter Username"); 
document.getElementById('uname').focus(); 
return false; 
} 
+1

*更好*在哪些方面?只要你可以很容易地得到元素的參考,這與imo無關。 –

+0

@Felix Kling:基於驗證。 – karthick

回答

0

在我看來,第一個選項document.fromname.uname更好。使用ID就像一個globale變量。最好使用表單的命名空間來避免衝突。

此外,您只需設置輸入字段的名稱屬性而不是名稱和ID。

0

這只是取決於您希望如何選擇表單中的項目。每個元素的ID始終是唯一的,而名稱不一定是。因此,使用名稱,可以非常簡單地選擇多個元素,特別是對於使用javascript創建的表單具有未知數量的字段時尤其有用。

2

避免使用ID,但不要以這種方式訪問​​表單。

這裏有一對夫婦的拇指一般規則:

獲取對窗體的引用和使用

不要使用全局變量。這使代碼更加可重用。

例如

function submitHandler (e) { 
    var myForm = this; 
} 
document.getElementById('myForm').addEventListener('submit', submitHandler); 

注意addEventListener,而標準的,不被舊版本的IE支持。使用庫來抽象你的事件綁定。

一旦你有一個參考,使用元素集合

myForm.elements.control … 

哪裏control可以是一個名稱或ID。如果它是一個名稱,並且您有多個具有相同名稱的控件(例如複選框組),那麼它將返回一個可以迭代的NodeList。

相關問題