Browse Source

#2579 make form identifiers optional

pull/3019/head
Jack Lukic 9 years ago
parent
commit
3b109b2ed6
1 changed files with 24 additions and 16 deletions
  1. 40
      src/definitions/behaviors/form.js

40
src/definitions/behaviors/form.js

@ -234,7 +234,7 @@ $.fn.form = function(parameters) {
; ;
module.verbose('Checking if form is valid'); module.verbose('Checking if form is valid');
$.each(validation, function(fieldName, field) { $.each(validation, function(fieldName, field) {
if( !( module.validate.field(field) ) ) {
if( !( module.validate.field(field, fieldName) ) ) {
allValid = false; allValid = false;
} }
}); });
@ -433,17 +433,20 @@ $.fn.form = function(parameters) {
}, },
validation: function($field) { validation: function($field) {
var var
rules
fieldValidation,
identifier
; ;
if(!validation) { if(!validation) {
return false; return false;
} }
$.each(validation, function(fieldName, field) { $.each(validation, function(fieldName, field) {
if( module.get.field(field.identifier)[0] == $field[0] ) {
rules = field;
identifier = field.identifier || fieldName;
if( module.get.field(identifier)[0] == $field[0] ) {
field.identifier = identifier;
fieldValidation = field;
} }
}); });
return rules || false;
return fieldValidation || false;
}, },
value: function (field) { value: function (field) {
var var
@ -590,9 +593,9 @@ $.fn.form = function(parameters) {
}, },
remove: { remove: {
prompt: function(field) {
prompt: function(identifier) {
var var
$field = module.get.field(field.identifier),
$field = module.get.field(identifier),
$fieldGroup = $field.closest($group), $fieldGroup = $field.closest($group),
$prompt = $fieldGroup.children(selector.prompt) $prompt = $fieldGroup.children(selector.prompt)
; ;
@ -600,7 +603,7 @@ $.fn.form = function(parameters) {
.removeClass(className.error) .removeClass(className.error)
; ;
if(settings.inline && $prompt.is(':visible')) { if(settings.inline && $prompt.is(':visible')) {
module.verbose('Removing prompt for field', field);
module.verbose('Removing prompt for field', identifier);
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
$prompt.transition(settings.transition + ' out', settings.duration, function() { $prompt.transition(settings.transition + ' out', settings.duration, function() {
$prompt.remove(); $prompt.remove();
@ -746,36 +749,41 @@ $.fn.form = function(parameters) {
}, },
// takes a validation object and returns whether field passes validation // takes a validation object and returns whether field passes validation
field: function(field) {
field: function(field, fieldName) {
var var
$field = module.get.field(field.identifier),
identifier = field.identifier || fieldName,
$field = module.get.field(identifier),
fieldValid = true, fieldValid = true,
fieldErrors = [] fieldErrors = []
; ;
if(!field.identifier) {
module.debug('Using field name as identifier', identifier);
field.identifier = identifier;
}
if($field.prop('disabled')) { if($field.prop('disabled')) {
module.debug('Field is disabled. Skipping', field.identifier);
module.debug('Field is disabled. Skipping', identifier);
fieldValid = true; fieldValid = true;
} }
else if(field.optional && $.trim($field.val()) === ''){ else if(field.optional && $.trim($field.val()) === ''){
module.debug('Field is optional and empty. Skipping', field.identifier);
module.debug('Field is optional and empty. Skipping', identifier);
fieldValid = true; fieldValid = true;
} }
else if(field.rules !== undefined) { else if(field.rules !== undefined) {
$.each(field.rules, function(index, rule) { $.each(field.rules, function(index, rule) {
if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) {
module.debug('Field is invalid', field.identifier, rule.type);
if( module.has.field(identifier) && !( module.validate.rule(field, rule) ) ) {
module.debug('Field is invalid', identifier, rule.type);
fieldErrors.push(module.get.prompt(rule)); fieldErrors.push(module.get.prompt(rule));
fieldValid = false; fieldValid = false;
} }
}); });
} }
if(fieldValid) { if(fieldValid) {
module.remove.prompt(field, fieldErrors);
module.remove.prompt(identifier, fieldErrors);
settings.onValid.call($field); settings.onValid.call($field);
} }
else { else {
formErrors = formErrors.concat(fieldErrors); formErrors = formErrors.concat(fieldErrors);
module.add.prompt(field.identifier, fieldErrors);
module.add.prompt(identifier, fieldErrors);
settings.onInvalid.call($field, fieldErrors); settings.onInvalid.call($field, fieldErrors);
return false; return false;
} }

Loading…
Cancel
Save