UNPKG

@degjs/form-validation

Version:

A modular form validation plugin, free of third-party dependencies and built on top of native HTML5 validation.

44 lines (39 loc) 1.32 kB
const renderErrorsEl = (field, settings) => { let errorsEl = field.querySelector('.' + settings.errorsClass); if (!errorsEl) { field.insertAdjacentHTML('beforeend', ` <div class="${settings.errorsClass} ${settings.defaultErrorsClass}"></div> `); errorsEl = field.querySelector('.' + settings.errorsClass); } else { errorsEl.classList.add(settings.errorsClass); } return errorsEl; } const renderValidationMessage = (args, settings) => { const msgAttribute = args.rule.settings.messageAttr; const field = args.field; const messagesArr = [ field.fieldEl.getAttribute(msgAttribute), field.formEl.getAttribute(msgAttribute), args.rule.settings.message, settings.defaultErrorMessage ]; let correctError = getErrorMessage(messagesArr); if (customMessageProcessorIsSet(args)) { correctError = args.rule.postprocessMessage(correctError, field); } field.errorsEl.insertAdjacentHTML('beforeend', ` <div class="${settings.errorClass}">${correctError}</div> `); } const customMessageProcessorIsSet = (args) => { return args && args.rule && args.rule.postprocessMessage && typeof args.rule.postprocessMessage === 'function'; } const getErrorMessage = (messagesArr) => { return messagesArr.find(message => message && message.length > 0); } export { renderErrorsEl, renderValidationMessage };