文字輸入欄位

文字輸入欄位會將字串儲存為值,並將字串儲存為文字。其值一律為有效字串,而文字可以是輸入至編輯器的任何字串。

文字輸入欄位

一個標籤為「text input:」(文字輸入:) 的方塊,以及設為「default text」(預設文字) 的文字輸入欄位。

開啟編輯器的文字輸入欄位

與正在編輯的欄位相同的區塊。

摺疊方塊上的文字輸入欄位

收合後的相同區塊。標籤為「文字輸入:預設文字」,右側邊緣呈鋸齒狀,表示已摺疊。

創作

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

文字輸入建構函式會接收選用值和選用驗證器。這個值應轉換為字串。如果是 nullundefined,則會使用空字串。

您也可以透過 JSON 定義設定 spellcheck 選項。

序列化和 XML

JSON

文字輸入欄位的 JSON 如下所示:

{
  "fields": {
    "FIELDNAME": "text"
  }
}

其中 FIELDNAME 是參照文字輸入欄位的字串,而值是要套用至欄位的值。這個值遵循與建構函式值相同的規則。

XML

文字輸入欄位的 XML 如下所示:

<field name="FIELDNAME">text</field>

欄位的 name 屬性包含參照文字輸入欄位的字串,且內部文字是要套用至欄位的值。內部文字值遵循與建構函式值相同的規則。

自訂

拼字檢查

您可以使用 setSpellcheck 函式,設定欄位是否要檢查輸入文字的拼字。

有和沒有拼字檢查功能的文字輸入欄位

GIF 動畫:顯示兩個含有文字輸入欄位的方塊。第一個區塊已開啟拼字檢查功能,錯字下方會顯示紅色波浪底線。第二個區塊已關閉拼字檢查功能,因此拼錯的字不會加上底線。

系統預設會開啟拼字檢查功能。

這適用於個別欄位。如要修改所有欄位,請變更 Blockly.FieldTextInput.prototype.spellcheck_ 屬性。

建立文字輸入驗證器

文字輸入欄位的值是字串,因此任何驗證器都必須接受字串,並傳回字串、nullundefined

以下是驗證器的範例,可從字串中移除所有 a 字元:

function(newValue) {
  return newValue.replace(/a/g, '');
}

GIF 動畫:顯示系統驗證文字輸入欄位。使用者輸入「bbbaaa」並點選其他位置時,欄位會變更為「bbb」。