diff --git a/src/definitions/behaviors/form.js b/src/definitions/behaviors/form.js index 7cc653ef1..c0c18d33b 100644 --- a/src/definitions/behaviors/form.js +++ b/src/definitions/behaviors/form.js @@ -801,8 +801,11 @@ $.fn.form = function(parameters) { // takes a validation object and returns whether field passes validation field: function(field, fieldName) { var - identifier = field.identifier || fieldName, - $field = module.get.field(identifier), + identifier = field.identifier || fieldName, + $field = module.get.field(identifier), + $dependsField = (field.depends) + ? module.get.field(field.depends) + : false, fieldValid = true, fieldErrors = [] ; @@ -818,6 +821,10 @@ $.fn.form = function(parameters) { module.debug('Field is optional and empty. Skipping', identifier); fieldValid = true; } + else if(field.depends && $dependsField.length === 0 || $dependsField.val() === '') { + module.debug('Field depends on another value that is not present or empty. Skipping', $dependsField); + fieldValid = true; + } else if(field.rules !== undefined) { $.each(field.rules, function(index, rule) { if( module.has.field(identifier) && !( module.validate.rule(field, rule) ) ) {