jrobinsonc
2/1/2013 - 2:22 PM

Validate form fields. (INCOMPLETO)

Validate form fields. (INCOMPLETO)

/**
 * Check fields
 * 
 * @autor JoseRobinson.com
 * @params string fields_names The fields names separated by pipe.
 * @params string container [Optional]
 * @todo Add support for select, textarea and the others html5 fields.
 */
function check_fields(fields_names, container) {
    
    var check_fields = this;
    
    this.error = function($ele) {
        $ele.removeClass("destacaOFF").addClass("destacaError");
                
        check_fields.result = false;
    }
    
    this.result = true;
    
    var fields_array = fields_names.split(','),
    $ele;
    
    $.each(fields_array, function(k,v){
        
        var input_name,
        rules = null;
        
        if (v.indexOf('[') > -1) {
            input_name = v.substr(0, v.indexOf('['));
            
            rules = v.substr(input_name.length).replace(/[\[\]]/g, '').split('|');
        } else {
            input_name = v;
        }
        
        if (typeof container == 'undefined') {
            $ele = $('[name='+ input_name +']');
        } else {
            $ele = $('[name='+ input_name +']', container);
        }
        
        switch (true) {
            
            case $ele.is('[type=radio],[type=checkbox]') && $ele.filter(':checked').length < 1:
            case $ele.is('[type=text],[type=tel],[type=number],[type=email]') && $ele.val().length == 0:
                
                check_fields.error($ele);
                
                
//                if (rules !== null && rules.length > 0) {
//                    $.each(rules, function(rule_key, rule){
//                        var rule_name = null, 
//                        rule_opt = null;
////                        
//                        if (rule.indexOf('=') > -1) {
//                            rule = rule.split('=');
//                            rule_name = rule[0];
//                            rule_opt = rule[1];
//                        } else {
//                            rule_name = rule;
//                        }
////                        
//                        switch(rule_name) {
//                            case 'minlen':
//                                
//                                if ($ele.val().length >= rule_opt) {
//                                    
//                                }
//                                
//                                break;
//                        }
//                    });
//                } else {
//                }
            
                break;
        }
    });
    
    return check_fields.result;
}
if (!check_fields('nombre[minlen=3],apellido[minlen=5],cedula[maxlen=15|num],email[email],tel[len=10|num],edad[len=2|num],sector[minlen=4]', '#reg-part')) {
        alert("Hubo un error en el formulario.");
        return;
    }