# 复选框字段
复选框字段存储字符串作为其值,存储字符串作为其文本。其值为 'TRUE'
或 'FALSE'
,并且其文本为 'true'
或 'false'
。
# 复选框字段
# 收起的块上的复选框字段
# 创建
复选框构造函数会接收一个可选值和一个可选的验证器。可选值应为 'TRUE'
、'FALSE'
或布尔值,否则默认值为 false
。
# 序列化
其中 name
属性包含引用复选框字段的字符串,而内部文本是要应用于该字段的值。内部文本值遵循与构造函数值相同的规则。
请注意,在反序列化和重新序列化后,所有内部文本值都将处于上限值('TRUE'
或 'FALSE'
)。这在区分工作区时有时很重要。
:::
# 自定义
# 对勾标记字符
Blockly.FieldCheckbox.CHECK_CHAR
属性可用于更改对勾标记的外观。该值应为包含 Unicode 字符的字符串。
CHECK_CHAR
属性默认为 '\u2713' 或 ✓。
这是一个全局属性,因此会在设置时修改所有复选框字段。
# 创建复选框验证程序
TIP
注意:如需查看有关校验器的一般信息,请参阅 校验器。
复选框字段的值为 'TRUE'
或 'FALSE'
,因此验证工具应接受这些值(即字符串),并返回 'TRUE'
、'FALSE'
、null
或 undefined
。
WARNING
注意:不应在验证程序中使用 getValueBoolean
方法,因为它会根据当前值(而非新值)返回结果。
以下是一个验证工具示例,该验证程序根据复选框是否已选中来隐藏或显示文本输入字段:
validate: function(newValue) {
var sourceBlock = this.getSourceBlock();
sourceBlock.showTextField_ = newValue == 'TRUE';
sourceBlock.updateTextField();
return newValue;
},
updateTextField: function() {
var input = this.getInput('DUMMY');
if (this.showTextField_ && !this.getField('TEXT')) {
input.appendField(new Blockly.FieldTextInput(), 'TEXT');
} else if (!this.showTextField_ && this.getField('TEXT')) {
input.removeField('TEXT');
}
}