數字欄位

數字欄位會將數字儲存為 value,字串則儲存為 text。目前時間:value 一律是一組由限制條件定義的有效數字 建立許多欄位可以是任何在編輯器中輸入的字串。

數字欄位

編輯器開啟的「數字」欄位

收合區塊中的數字欄位

創作

JSON

{
  "type": "example_number",
  "message0": "number: %1",
  "args0": [
    {
      "type": "field_number",
      "name": "FIELDNAME",
      "value": 100,
      "min": 0,
      "max": 100,
      "precision": 10
    }
  ]
}

JavaScript

Blockly.Blocks['example_number'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("number:")
        .appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
  }
};

數字建構函式會執行以下操作:

value 應轉換為數字。如果沒有,則會使用 0。

序列化

JSON

數字欄位的 JSON 如下所示:

{
  "fields": {
    "FIELDNAME": 0
  }
}

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

XML

數字欄位的 XML 如下所示:

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

field 節點的 name 屬性含有參照數字的字串 欄位,而節點的內部 text 則是要套用至欄位的 value。 內部文字值遵循與建構函式值相同的規則。

限制

您可以在欄位定義中設定限制,也可以使用 setConstraints 函式。

最小值

min 值會設定該欄位允許的最小/最負值 包含。

最大值

max 值會設定該欄位允許的最大/最正面值 包含。

圓角

precision 會將值無條件進位至最接近的精確度的倍數。可用的值包括 ,用來讓欄位僅接受 .01、10、42 等的倍數。

常見限制

正數

如要強制欄位只接受正數,請將 min 值設為 1.

整數

如要強制欄位只接受整數,請將 precision 設為 1。

建立號碼驗證工具

數字欄位的值是數字,因此所有驗證工具都必須接受 number,以及 會傳回 numbernullundefined

以下示例驗證工具會將值變更為 0 或 1 取決於值是奇數或偶數

function(newValue) {
  return newValue % 2;
}