# 复选框字段

复选框字段存储字符串作为其值,存储字符串作为其文本。其值为 'TRUE''FALSE',并且其文本为 'true''false'

# 复选框字段

# 收起的块上的复选框字段

# 创建

复选框构造函数会接收一个可选值和一个可选的验证器。可选值应为 'TRUE''FALSE' 或布尔值,否则默认值为 false

# 序列化

其中 name 属性包含引用复选框字段的字符串,而内部文本是要应用于该字段的值。内部文本值遵循与构造函数值相同的规则。

请注意,在反序列化和重新序列化后,所有内部文本值都将处于上限值('TRUE''FALSE')。这在区分工作区时有时很重要。 :::

# 自定义

# 对勾标记字符

Blockly.FieldCheckbox.CHECK_CHAR 属性可用于更改对勾标记的外观。该值应为包含 Unicode 字符的字符串。

Checkbox field with heart instead of check

CHECK_CHAR 属性默认为 '\u2713' 或 ✓。

这是一个全局属性,因此会在设置时修改所有复选框字段。

# 创建复选框验证程序

TIP

注意:如需查看有关校验器的一般信息,请参阅 校验器

复选框字段的值为 'TRUE''FALSE',因此验证工具应接受这些值(即字符串),并返回 'TRUE''FALSE'nullundefined

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');
    }
  }

# 包含验证器的复选框字段