有非更好的非空验证方法吗?

时间:2013-11-08 05:13:07

标签: javascript validation

我一直验证输入元素以确保 at-least 中的每个元素都有一些数据并通知用户要填充的字段。我正在做的方式是,

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 个答案:

答案 0 :(得分: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' }
]);

答案 1 :(得分: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;

}

答案 2 :(得分: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;

}

答案 3 :(得分:0)

修剪功能从字符串的两边删除空格。它用于验证字段中的空白区域。

所以尝试使用这种格式

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