如何避免客户端验证中的冗余条件

How can I avoid redundant conditionals in client-side validation?

本文关键字:冗余 条件 验证 何避免 客户端      更新时间:2023-09-26

我的代码使用许多条件语句并且变得复杂。我正在寻找一种更有效的方法来验证输入。

我的代码以 JSON 形式接收服务器端验证的结果。对于许多输入中的每一个,如果输入的值无效,服务器将返回相应的false。条件语句相应地修改 UI。下面是一个示例:

else if((data.address===false)&&(data.city===false)&&(data.municipality===false))
{
    $('#adrserror').html('You have to put an address, city and municiplaity.'); 
    $('label.error').hide();
    $('.openpaddress').find('input').prop('readonly', false);
}
else if((data.address===false)&&(data.city===false))
{
    $('#adrserror').html('You have to fill the address and the city fields.'); 
    $('label.error').hide();  
    $('.openpaddress').find('#municipality').prop('readonly', true).css('border', '0px');   
}
else if((data.city===false)&&(data.municipality===false))
    ...

HTML 仅包含三个输入元素(地址、城市和自治市(以及随附的标签。

像这样:

var missing = [];
var fields = ['address', 'city', 'municipality'];
for (var i = 0; i < fields.length; i++) {
    var f = fields[i];
    if (data[f] === false) {
        missing.push(f);
    }
}
if (missing.length > 0) {
    $('#adrserror').text('Please fill in fields: ' + missing.join(', '));
}