數字欄位會將數字儲存為 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,系統則會使用 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
並傳回 number
、null
或 undefined
。
這個驗證工具範例會根據值是奇數還是偶數,將值變更為 0 或 1。
function(newValue) {
return newValue % 2;
}