var KretaForm = (function () { var kretaform = function () {}; kretaform.validate = function (form) { validate(form); }; function validate(form) { form.validate({ errorPlacement: function (error, element) { element.attr('title', error.text()); element .prev( 'label[for="' + $(element).attr('name').replace('_', '.') + '"]' ) .addClass('labelError'); element .closest('div') .prev() .find( 'label[for="' + $(element).attr('name').replace('_', '.') + '"]' ) .addClass('labelError'); var container = form.find('.kreta-validation-summary'); list = container.find('ul'); if (error && error.length > 0) { $.each(error, function (i, ival) { $('
  • ').html(ival).appendTo(list); }); container .addClass('validation-summary-errors') .removeClass('validation-summary-valid'); } }, success: function (errorLabel) { $( 'label[for="' + $(errorLabel).attr('for').replace('_', '.') + '"]' ).removeClass('labelError'); //Nested Model Hack $('label[for=' + $(errorLabel).attr('for') + ']').removeClass( 'labelError' ); //DropDown Hack errorLabel.parent('li').css({ display: 'none' }); }, showErrors: function (errorMap, errorList) { var errorCount = this.numberOfInvalids(); this.defaultShowErrors(); $.each(errorList, function (i, ival) { var elementId = $(ival.element).attr('id'); if (typeof elementId !== 'undefined') { $('label[for=' + elementId + ']').addClass('labelError'); //DropDown Hack $('label[for="' + elementId.replace('_', '.') + '"]').addClass( 'labelError' ); //Nested Model Hack var elem = '#' + elementId + '-error'; $(elem).parent('li').css({ display: 'list-item' }); } }); var container = form.find('.kreta-validation-summary'); var labelErrors = container.find('.labelError'); var textContents = container.find('ul'); $.each(labelErrors, function (i, element) { if ($(element).text() === '') { $(element).parent('li').css({ display: 'none' }); } }); if ( errorCount > 0 || (typeof labelErrors !== 'undefined' && labelErrors.length > 0) ) { container.css({ display: 'block' }); } if (typeof textContents !== 'undefined' && textContents.text() === '') { container.css({ display: 'none' }); } }, ignore: "input[type='file'].ignore-validation" }); } return kretaform; })();