Поля ввода текста

Поле ввода текста хранит строку в качестве значения и строку в качестве текста. Его значение всегда является допустимой строкой, а его текстом может быть любая строка, введенная в его редактор.

Поле ввода текста

Поле ввода текста с открытым редактором

Поле ввода текста в свернутом блоке

Создание

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, '');
}