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;
}