Aikau icon indicating copy to clipboard operation
Aikau copied to clipboard

Validation of hidden fields on the form

Open aviriel opened this issue 7 years ago • 1 comments

alfresco/forms/controls/BaseFormControl has an attribute "validateWhenHidden". As I understand, it's expected, that if validateWhenHidden: false, then the field is always valid if it's hidden.

Current behaviour: Using

requirementConfig: {
  initialValue: true
}

or

validationConfig: [{
  validation: "minLength",
  length: 1,
  errorMessage: "Too short"
}

together with

visibilityConfig: {
  initialValue: false
}

makes the form invalid

aviriel avatar Aug 06 '17 10:08 aviriel

The same issue. The form: { name: "alfresco/forms/Form", config: { showOkButton: true, okButtonLabel: "Найти", showCancelButton: false, okButtonPublishTopic: "SEARCH_CREATE_QUERY_CONTACT_LIST", okButtonPublishGlobal: true, showValidationErrorsImmediately: true, widgets: [ { name: "alfresco/forms/controls/RadioButtons", config: { fieldId: "PRESET_SEARCH_OPTIONS", label: "Выберите способ поиска клиента:", name: "value", value: "ID", noPostWhenValueIs: [ "NO_SEARCH" ], optionsConfig: { fixed: [ { label: "Поиск по ID-клиента", value: "ID" }, { label: "Поиск по ФИО", value: "FIO" }, { label: "Поиск по серии/номеру паспорта", value: "PASSPORT" } ] } } }, { name: "alfresco/forms/ControlRow", config: { widgetMarginLeft: 8, widgets: [ { name: "alfresco/forms/controls/TextBox", config: { widthPx: 220, additionalCssClasses: "radius", fieldId: "clientId", label: "ID-клиента", name: "clientId", validateWhenHidden: false, validationConfig: [ { validation: "minLength", length: 4, errorMessage: "Минимум 4 символа", } ], postWhenHiddenOrDisabled: false, requirementConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "ID" ] } ] }, visibilityConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "ID" ] } ] } } } ] } }, { name: "alfresco/forms/ControlRow", config: { widgetMarginLeft: 8, widgets: [ { name: "alfresco/forms/controls/TextBox", config: { widthPx: 220, additionalCssClasses: "radius", fieldId: "lastName", label: "Фамилия", name: "lastName", placeHolder: "Фамилия...", validateWhenHidden: false, requirementConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "FIO" ] } ] }, validationConfig: [ { validation: "regex", regex: "^[А-Яа-я]*$", errorMessage: "Допустимы только русские буквы" } ], postWhenHiddenOrDisabled: false, visibilityConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "FIO" ] } ] } } }, { name: "alfresco/forms/controls/TextBox", config: { widthPx: 220, additionalCssClasses: "radius", fieldId: "firstName", label: "Имя", name: "firstName", placeHolder: "Имя...", validateWhenHidden: false, requirementConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "FIO" ] } ] }, validationConfig: [ { validation: "regex", regex: "^[А-Яа-я]*$", errorMessage: "Допустимы только русские буквы" } ], postWhenHiddenOrDisabled: false, visibilityConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "FIO" ] } ] } } }, { name: "alfresco/forms/controls/TextBox", config: { widthPx: 220, additionalCssClasses: "radius", fieldId: "middleName", label: "Отчество", name: "middleName", placeHolder: "Отчество...", validateWhenHidden: false, validationConfig: [ { validation: "regex", regex: "^[А-Яа-я]*$", errorMessage: "Допустимы только русские буквы" } ], postWhenHiddenOrDisabled: false, visibilityConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "FIO" ] } ] } } }, { name: "alfresco/forms/controls/DateTextBox", config: { widthPx: 220, additionalCssClasses: "radius", fieldId: "birthDate", label: "Дата рождения", name: "birthDate", placeHolder: "12/31/1990", validateWhenHidden: false, postWhenHiddenOrDisabled: false, visibilityConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "FIO" ] } ] } } } ] } }, { name: "alfresco/forms/ControlRow", config: { widgetMarginLeft: 8, widgets: [ { name: "alfresco/forms/controls/TextBox", config: { widthPx: 220, additionalCssClasses: "radius", fieldId: "serialDoc", label: "Серия документа", placeHolder: "1234...", name: "serialDoc", requirementConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "PASSPORT" ] }] }, validationConfig: [ { validation: "regex", regex: "^[A-Za-z0-9]*$", errorMessage: "Только латинские буквы и цифры" } ], postWhenHiddenOrDisabled: false, visibilityConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "PASSPORT" ] } ] } } }, { name: "alfresco/forms/controls/TextBox", config: { widthPx: 220, additionalCssClasses: "radius", fieldId: "numberDoc", label: "Номер документа", name: "numberDoc", placeHolder: "123456...", validationConfig: [ { validation: "regex", regex: "^[A-Za-z0-9]*$", errorMessage: "Только латинские буквы и цифры" } ], postWhenHiddenOrDisabled: false, requirementConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "PASSPORT" ] }] }, visibilityConfig: { rules: [ { targetId: "PRESET_SEARCH_OPTIONS", is: [ "PASSPORT" ] } ] } } } ] } }] } }]

Validation is activated independently on onvalidateWhenHidden = false parameter on fieldId: "clientId".

validateWhenHidden: false, validationConfig: [ { validation: "minLength", length: 4, errorMessage: "Минимум 4 символа", } ],

image

ivanovpavel1983 avatar Jan 25 '18 09:01 ivanovpavel1983