0

我一直在验证输入元素以确保每个元素至少有一些数据并通知用户要填写什么字段。我的做法是,

function validate()
{   
    var product_name  = document.getElementById('pname').value;
    var p_number      = document.getElementById('pnumber').value;
    var description   = document.getElementById('descr').value;

    if(product_name=="")
         {alert("Please fill Product Name");   return false;}
    else if(p_number=="")
         {alert("Please fill product Number"); return false;}
    else if(description=="")
         {alert("Please fill description");    return false;}
    else
         return true;

}

我觉得这段代码不是最佳的,需要改进。你们可能已经在此验证方面经验丰富,并且有一些技巧。请帮助我以更好的方式进行相同的验证。谢谢你的时间。

4

4 回答 4

3

您应该使您的验证函数更通用,以便它可以用于任意数量的字段。您还应该使用 trim() 来防止空格。

function validate(fields) {   
    for (var i = 0, l = fields.length; i < l; i++) {
        var field = document.getElementById(fields[i].id);
        if (field.value == null || field.value.trim() === '') {
            alert('Please fill in ' + fields[i].name);
            return false;
        }
    }
    return true;
}

然后进行验证,您将传入名称和 ID

var isValid = validate([
    { id: 'pname', name: 'Product Name' },
    { id: 'pnumber', name: 'Product Number' },
    { id: 'descr', name: 'Description' }
]);
于 2013-11-08T05:21:46.483 回答
0

Trim 函数从字符串的两侧删除空格。它用于验证字段中的空格。

所以尝试使用这种格式

if(product_name.trim().length == 0)

于 2013-11-08T05:25:13.637 回答
0

利用:

function validate()

{   
    var product_name  = document.getElementById('pname').value;
    var p_number      = document.getElementById('pnumber').value;
    var description   = document.getElementById('descr').value;

    if((product_name.trim()).length == 0)
         {alert("Please fill Product Name");   return false;}
    else if((p_number.trim()).length == 0)
         {alert("Please fill product Number"); return false;}
    else if((description.trim()).length == 0)
         {alert("Please fill description");    return false;}
    else
         return true;

}
于 2013-11-08T05:15:48.273 回答
0

在这里试试这个:

function validate()
{   
    var d = document;
    var byId = function( id ) { return d.getElementById( id ); };

    var product_name  = byId('pname').value;
    var p_number      = byId('pnumber').value;
    var description   = byId('descr').value;

    if(product_name=="")
         {alert("Please fill Product Name");   return false;}
    else if(p_number=="")
         {alert("Please fill product Number"); return false;}
    else if(description=="")
         {alert("Please fill description");    return false;}
    else
         return true;

}
于 2013-11-08T05:17:32.970 回答