Элемент пользовательского интерфейса Microsoft.Common.TextBox
Элемент пользовательского интерфейса TextBox
можно использовать для добавления неформатированного текста. Элемент представляет собой однострочное поле ввода, но поддерживает многострочный ввод со свойством multiLine
.
Пример элемента пользовательского интерфейса
Элемент TextBox
представляет собой однострочное или многострочное текстовое поле.
Пример однострочного текстового поля.
Пример многострочного текстового поля.
Схема
{
"name": "nameInstance",
"type": "Microsoft.Common.TextBox",
"label": "Name",
"defaultValue": "contoso123",
"toolTip": "Use only allowed characters",
"placeholder": "",
"multiLine": false,
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only alphanumeric characters are allowed, and the value must be 1-30 characters long."
},
{
"isValid": "[startsWith(steps('resourceConfig').nameInstance, 'contoso')]",
"message": "Must start with 'contoso'."
}
]
},
"visible": true
}
Пример полученных результатов
"contoso123"
Замечания
- Используйте свойство
toolTip
для отображения текста об элементе при наведении курсора мыши на информационный символ. - Свойство
placeholder
представляет собой текст справки, который исчезает, когда пользователь начинает редактирование. Еслиplaceholder
иdefaultValue
определены оба,defaultValue
имеет приоритет и отображается. - Свойство
multiLine
является логическим,true
илиfalse
. Чтобы использовать многострочное текстовое поле, задайте для свойства значениеtrue
. Если многострочное текстовое поле не требуется, установите для свойства значениеfalse
или исключите свойство. Для новых строк вывод JSON отображает\n
для перевода строки. Многострочное текстовое поле допускает использование\r
для возврата каретки (CR) и\n
для перевода строки (LF). Например, значение по умолчанию может включать указание\r\n
возврата каретки и канала строки (CRLF). - Если для
constraints.required
задано значениеtrue
, текстовое поле должно содержать значение, чтобы пройти проверку. Значение по умолчанию —false
. - Свойство
validations
— это массив, в который вы добавляете условия для проверки значения, указанного в текстовом поле. - Свойство
regex
— это шаблон регулярного выражения JavaScript. Если оно указано, значение текстового поля должно соответствовать шаблону, чтобы пройти проверку. Значение по умолчанию —null
. Дополнительные сведения о синтаксисе регулярных выражений см. в статье Краткий справочник по регулярным выражениям. - Свойство
isValid
содержит выражение, результатом вычисления которого являетсяtrue
илиfalse
. В выражении вы указываете условие, которое определяет, допустимо ли текстовое поле. - Свойство
message
— это строка, которая отображается, когда значение в текстовом поле не проходит проверку. - Можно указать значение для
regex
, если дляrequired
задано значениеfalse
. В этом случае, чтобы пройти проверку, значение для текстового поля не требуется. Если указано, оно должно соответствовать шаблону регулярного выражения.
Примеры
Примеры показывают, как использовать однострочное и многострочное текстовые поля.
Одна строка
В следующем примере используется текстовое поле с элементом управления Microsoft.Solutions.ArmApiControl для проверки доступности имени ресурса.
В этом примере при вводе имени учетной записи хранения и выходе из текстового поля элемент управления проверяет, является ли имя допустимым и доступно ли оно. Если имя недопустимо или уже существует, отображается сообщение об ошибке. В выходных данных отображается допустимое и доступное имя учетной записи хранения.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "nameApi",
"type": "Microsoft.Solutions.ArmApiControl",
"request": {
"method": "POST",
"path": "[concat(subscription().id, '/providers/Microsoft.Storage/checkNameAvailability?api-version=2021-09-01')]",
"body": {
"name": "[basics('txtStorageName')]",
"type": "Microsoft.Storage/storageAccounts"
}
}
},
{
"name": "txtStorageName",
"type": "Microsoft.Common.TextBox",
"label": "Storage account name",
"constraints": {
"validations": [
{
"isValid": "[basics('nameApi').nameAvailable]",
"message": "[basics('nameApi').message]"
}
]
}
}
],
"steps": [],
"outputs": {
"textBox": "[basics('txtStorageName')]"
}
}
}
Несколько строк
В этом примере свойство multiLine
используется для создания многострочного текстового поля с текстом-заполнителем.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "demoTextBox",
"type": "Microsoft.Common.TextBox",
"label": "Multi-line text box",
"defaultValue": "",
"toolTip": "Use 1-60 alphanumeric characters, hyphens, spaces, periods, and colons.",
"placeholder": "This is a multi-line text box:\nLine 1.\nLine 2.\nLine 3.",
"multiLine": true,
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z -.:\n]{1,60}$",
"message": "Only 1-60 alphanumeric characters, hyphens, spaces, periods, and colons are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"textBox": "[basics('demoTextBox')]"
}
}
}
Следующие шаги
- Общие сведения о создании определений пользовательского интерфейса см. в статье Использование CreateUiDefinition.jsоn при создании управляемого приложения Azure.
- Дополнительные сведения об общих свойствах элементов пользовательского интерфейса см. в статье Элементы CreateUiDefinition.
- Дополнительные сведения о функциях см. в статье Функции CreateUiDefinition.