Вместо сообщений, специфичных для ограничений, отображаются общие сообщения

#sapui5

Вопрос:

Для поля ввода с ограничениями minLength: 2 и maxLength: 10 символами, если вы введете 11 символов, вы получите статическое сообщение об ошибке, что это «Недопустимая запись».

В следующем Input поле:

 <Input value="{
  path: 'modelExample>/Example1',
  type: 'sap.ui.model.type.String',
  constraints: {
    minLength: 2,
    maxLength: 10
  }
}"/>
 

Как изменить поле ввода, чтобы сообщение об ошибке было изменено на: «Ваш ввод может содержать только от 2 до максимум 10 символов»?

Ответ №1:

Где-то вы должны устанавливать значение Error вручную, а не позволять фреймворку автоматически генерировать сообщение.

Здесь вы можете видеть, что сообщение отображается правильно в зависимости от входного значения:

 sap.ui.require([
  "sap/ui/core/Core"
], Core => Core.attachInit(() => sap.ui.require([
  "sap/ui/core/mvc/XMLView",
], async (XMLView) => {
  "use strict";
  
  const control = await XMLView.create({
    definition: `<mvc:View xmlns:mvc="sap.ui.core.mvc"
      xmlns="sap.m"
      xmlns:core="sap.ui.core"
      core:require="{ ThatTypeString: 'sap/ui/model/type/String' }">
      <App>
        <Page showHeader="false" class="sapUiResponsiveContentPadding">
          <Input width="17rem" value="{
            value: '1234567890',
            type: 'ThatTypeString',
            constraints: {
              minLength: 2,
              maxLength: 10
            }
          }"/>
        </Page>
      </App>
    </mvc:View>`,
    height: "100%",
  });

  Core.getMessageManager().registerObject(control, true);
  control.placeAt("content");
}))); 
 <script id="sap-ui-bootstrap"
  src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
  data-sap-ui-libs="sap.ui.core,sap.m"
  data-sap-ui-theme="sap_fiori_3"
  data-sap-ui-async="true"
  data-sap-ui-compatversion="edge"
  data-sap-ui-excludejquerycompat="true"
  data-sap-ui-xx-waitfortheme="init"
></script>
<body id="content" class="sapUiBody sapUiSizeCompact"></body> 
  • Сообщение минимальной длины для проверки ввода UI5
  • Сообщение максимальной длины проверки ввода UI5

См. раздел «Сообщения о проверке документации»в разделе» Автоматически создаваемые сообщения». В большинстве случаев достаточно установить "handleValidation": true значение "sap.ui5" в manifest.json файле.

Вместо того, чтобы устанавливать значение вручную, убедитесь, что платформа устанавливает сообщение автоматически.