数字字段存储一个数字作为其 value
,并将一个字符串存储为其 text
。根据创建时为字段提供的 约束条件,其 value
始终是有效数字;其文本可以是输入到编辑器中的任何字符串。
:::: tabs ::: tab JSON
{
"type": "example_number",
"message0": "number: %1",
"args0": [
{
"type": "field_number",
"name": "FIELDNAME",
"value": 100,
"min": 0,
"max": 100,
"precision": 10
}
]
}
::: ::: tab JavaScript
Blockly.Blocks['example_number'] = {
init: function() {
this.appendDummyInput()
.appendField('number:')
.appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
}
};
::: ::::
数字构造函数会接受以下内容:
value
应转换为数字。否则为 0。
:::: tabs ::: tab JSON 数字字段的 JSON 如下所示:
{
"fields": {
"FIELDNAME": 0
}
}
其中 FIELDNAME
是引用数字字段的字符串,值是应用于该字段的值。该值遵循与构造函数值相同的规则。
:::
::: tab XML
数字字段的 XML 应如下所示:
<field name="FIELDNAME">0</field>
field
节点的 name
属性包含引用数字字段的字符串,节点的内部 text
是应用于该字段的 value
。内部文本值遵循与构造函数值相同的规则。
::: ::::
您可以在字段定义中设置约束条件,也可以通过使用 setConstraints 函数进行设置。
min
值用于设置允许字段包含的最小值/最负值。
max
值用于设置允许字段包含的最大值/最正值。
precision
将值四舍五入为最接近的精度倍数。这可用于使字段仅接受 0.01、10、42 等的倍数。
如需强制字段仅接受正数,请将 min
值设置为 1。
如需强制字段仅接受整数,请将 precision
设置为 1。
:::tip
注意:如需查看有关校验器的一般信息,请参阅 校验器。
:::
数字字段的值是一个数字,因此任何验证器都必须接受 number
并返回 number
、null
或 undefined
。
下面是一个验证程序,它会将值更改为 0 或 1,具体取决于该值是奇数还是偶数。
function(newValue) {
return newValue % 2;
}