在jquery表单验证中优化if else条件

时间:2016-12-15 12:52:25

标签: jquery

$("#submit").click(function() {
    var userinput = $('#username').val();
    var mobilenumber=$('#mobnum').val();
    var address1=$('#addr1').val();
    var address2=$('#addr2').val();
    var emailid=$('#mail').val();

    var characterReg = /^([a-zA-Z]{2,30})$/;
    var numericReg=/^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
    var emailReg=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    var addrReg = /^\s*[a-zA-Z0-9,\s]+\s*$/;

    var errors=false;

    if (!characterReg.test(userinput)) {
        $('#username').addClass('boxBorder');
        errors=true;
    } else {
        $('#username').removeClass('boxBorder');
    }
    if (!numericReg.test(mobilenumber)) {
        $('#mobnum').addClass('boxBorder');
        errors=true;
    } else {
        $('#mobnum').removeClass('boxBorder');
    }
    if (!emailReg.test(emailid)) {
        $('#mail').addClass('boxBorder');
        errors=true;
    } else {
        $('#mail').removeClass('boxBorder');
    }
    if ($('#pwd').val()=='') {
        $('#pwd').addClass('boxBorder');
        errors=true;    
    } else {
        $('#pwd').removeClass('boxBorder');
    }
    if (!addrReg.test(address1)) {
        $('#addr1').addClass('boxBorder');
        errors=true;
    } else {
        $('#addr1').removeClass('boxBorder');
    }
    if (!characterReg.test(address2)) {
        $('#addr2').addClass('boxBorder');
        errors=true;    
    } else {
        $('#addr2').removeClass('boxBorder');
    }
    if (errors) {
        return false;
    } else {
        return true;
    }
});

我在jQuery中为表单验证编写了这段代码。它完美地运作。但是,我想用单if...else重写所有条件,而不是使用多个if else条件。有可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用switch个案件,如下所示

switch(true){
  case addrReg.test(address1):
  case addrReg.test(address2):
..............
}

答案 1 :(得分:0)

    $("#submit").click(function() {
        var userinput = $('#username').val();
        var mobilenumber=$('#mobnum').val();
        var address1=$('#addr1').val();
        var address2=$('#addr2').val();
        var emailid=$('#mail').val();

        var characterReg = /^([a-zA-Z]{2,30})$/;
        var numericReg=/^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
        var emailReg=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
        var addrReg = /^\s*[a-zA-Z0-9,\s]+\s*$/;

        var errors=false;

        $('input').removeClass('boxBorder');

        if (!characterReg.test(userinput)) {
            $('#username').addClass('boxBorder');
            errors=true;
        }
        if (!numericReg.test(mobilenumber)) {
            $('#mobnum').addClass('boxBorder');
            errors=true;
        } 
        if (!emailReg.test(emailid)) {
            $('#mail').addClass('boxBorder');
            errors=true;
        } 
        if ($('#pwd').val()=='') {
            $('#pwd').addClass('boxBorder');
            errors=true;    
        } 
        if (!addrReg.test(address1)) {
            $('#addr1').addClass('boxBorder');
            errors=true;
        } 
        if (!characterReg.test(address2)) {
            $('#addr2').addClass('boxBorder');
            errors=true;    
        } 
        if (errors) {
            return false;
        } else {
            return true;
        }
    });
相关问题