oclockvn
4/25/2017 - 1:51 PM

build validation for single input with given attributes

build validation for single input with given attributes

/**
     * build a validator for input
     * @param {name} is input name
     * @param {required} is determine that input is required or not
     * @param {max} check the maximum length for input
     * @param {lenmsg} 
     * @param {min} required the minimum length for input
     * @param {group} for custom group selector (default is `.form-group`)
     */
function validatorBuilder(name, required, max, min, group, regex) {
    var validators = {};

    if (required) {
        if (typeof required === 'object' && required.msg) {
            validators.notEmpty = {
                message: required.msg
            };
        } else {
            validators.notEmpty = {
                message: name + " không được để trống"
            };
        }
    }

    if (max) {
        if (typeof max === 'object' && max.msg) {
            validators.stringLength = {
                max: Number(max.val),
                message: max.msg
            };
        } else {
            validators.stringLength.max = Number(max);
        }

        if (min) {
            validators.stringLength.min = Number(min);
        }
    }

    if (regex) {
        validators.regexp = regex;
    }

    group = group || '.form-group';
    return {
        group: group,
        validators: validators
    };
}