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

时间:2011-09-22 08:48:34

标签: javascript

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

基于FIELD NAME的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;   
}

3 个答案:

答案 0 :(得分:2)

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

以下是一些通用的经验法则:

获取对表单的引用并使用

不要使用全局变量。这使代码更具可重用性。

e.g。

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

请注意,早期版本的IE不支持标准addEventListener。使用库来抽象事件绑定。

获得参考后,请使用元素集合

myForm.elements.control …

control可以是名称或ID。如果它是一个名称,并且您有多个具有相同名称的控件(例如一个复选框组),那么它将返回一个您可以迭代的NodeList。

答案 1 :(得分:0)

这取决于您希望如何选择表单中的项目。对于每个元素,ID始终是唯一的,而名称不一定是唯一的。因此,使用名称,您可以非常简单地选择多个元素,对于使用具有未知数量字段的javascript创建的表单尤其有用。

答案 2 :(得分:0)

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

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