數字欄位

數字欄位會將數字儲存為 value,並將字串儲存為 textvalue 一律是建立時針對欄位指定的限制所定義的有效數字;可以是在編輯器中輸入的任何字串。

數字欄位

開啟編輯器的數字欄位

收合區塊中的數字欄位

創作風潮

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,系統則會使用 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;
}