Javascript验证-哪一个最好(名称或ID)

Javascript验证-哪一个最好(名称或ID),javascript,Javascript,我有两个JavaScript验证选项,其中哪一个更适合用于验证 基于字段名的Javascript验证 if(document.formname.uname.value=="") { alert("Please Enter Username"); document.formname.uname.focus(); return false; } 基于ID的Javascript验证 if(document.getElementById('uname').value=="") { alert("Ple

我有两个JavaScript验证选项,其中哪一个更适合用于验证

基于字段名的Javascript验证

if(document.formname.uname.value=="")
{
alert("Please Enter Username");
document.formname.uname.focus();
return false;
}
基于ID的Javascript验证

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

这取决于您希望如何选择表单中的项目。ID对于每个元素总是唯一的,而名称不必是唯一的。因此,使用name,您可以非常简单地选择多个元素,特别是对于使用javascript创建的表单(字段数未知)。

在我看来,使用
document.fromname.uname的第一个选项更好。使用IDs就像一个globale变量。最好使用表单的名称空间来避免冲突


此外,您只需设置输入字段的name属性,而不是name和id。

避免使用id,但不要以这种方式访问表单

以下是一些一般的经验法则:

获取对表单的引用并使用该引用

不要使用globals。这使得代码更加可重用

e、 g

请注意,
addEventListener
,虽然是标准的,但旧版本的IE不支持。请使用库来抽象事件绑定

一旦有了参考,就使用元素集合

myForm.elements.control …

其中
control
可以是名称或id。如果它是一个名称,并且您有多个具有相同名称的控件(例如复选框组),则它将返回一个节点列表,您可以迭代。

在什么方面更好?只要你能很容易地得到元素的引用,在我看来这并不重要。@Felix Kling:基于验证。
myForm.elements.control …