Поле ввода текста хранит строку в качестве значения и строку в качестве текста. Его значение всегда является допустимой строкой, а его текстом может быть любая строка, введенная в его редактор.
Поле ввода текста
Поле ввода текста с открытым редактором
Поле ввода текста в свернутом блоке
Создание
JSON
{
"type": "example_textinput",
"message0": "text input: %1",
"args0": [
{
"type": "field_input",
"name": "FIELDNAME",
"text": "default text",
"spellcheck": false
}
]
}
JavaScript
Blockly.Blocks['example_textinput'] = {
init: function() {
this.appendDummyInput()
.appendField("text input:")
.appendField(new Blockly.FieldTextInput('default text'),
'FIELDNAME');
}
};
Конструктор текстового ввода принимает необязательное значение и необязательный валидатор . Значение должно быть преобразовано в строку. Если оно равно null
или undefined
, будет использоваться пустая строка.
Определение JSON также позволяет вам установить опцию проверки орфографии .
Сериализация и XML
JSON
JSON для поля ввода текста выглядит так:
{
"fields": {
"FIELDNAME": "text"
}
}
Где FIELDNAME
— это строка, ссылающаяся на поле ввода текста, а значение — это значение, которое применяется к полю. Значение подчиняется тем же правилам, что и значение конструктора.
XML
XML для поля ввода текста выглядит так:
<field name="FIELDNAME">text</field>
Где атрибут name
поля содержит строку, ссылающуюся на поле ввода текста, а внутренний текст — это значение, которое следует применить к полю. Внутреннее текстовое значение подчиняется тем же правилам, что и значение конструктора.
Кастомизация
Проверка орфографии
Функцию setSpellcheck можно использовать для установки того, будет ли поле проверять орфографию входного текста или нет.
Поля ввода текста с проверкой орфографии и без нее
Проверка орфографии включена по умолчанию.
Это касается отдельных полей. Если вы хотите изменить все поля, измените свойство Blockly.FieldTextInput.prototype.spellcheck_
.
Создание валидатора ввода текста
Значением поля ввода текста является строка, поэтому любые валидаторы должны принимать строку и возвращать строку, null
или undefined
.
Вот пример валидатора, который удаляет из строки все символы «a»:
function(newValue) {
return newValue.replace(/a/g, '');
}