Trường hộp đánh dấu

Trường hộp đánh dấu lưu trữ một chuỗi làm giá trị và một chuỗi dưới dạng văn bản của chuỗi đó. Giá trị của thuộc tính này là 'TRUE' hoặc 'FALSE' và văn bản là 'true' hoặc 'false'.

Trường hộp đánh dấu

Trường hộp đánh dấu trên khối đã thu gọn

dựa trên xu hướng

JSON

{
  "type": "example_checkbox",
  "message0": "checkbox: %1",
  "args0": [
    {
      "type": "field_checkbox",
      "name": "FIELDNAME",
      "checked": true
    }
  ]
}

JavaScript

Blockly.Blocks['example_checkbox'] = {
  init: function() {
    this.appendDummyInput()
        .appendField('checkbox:')
        .appendField(new Blockly.FieldCheckbox(true), 'FIELDNAME');
  }
};

Hàm khởi tạo hộp đánh dấu lấy một giá trị không bắt buộc và một validator không bắt buộc. Giá trị không bắt buộc phải là 'TRUE', 'FALSE' hoặc boolean, nếu không giá trị sẽ mặc định là false.

Chuyển đổi tuần tự

JSON

JSON cho trường hộp đánh dấu sẽ có dạng như sau:

{
  "fields": {
    "FIELDNAME": true
  }
}

Trong đó FIELDNAME là một chuỗi tham chiếu đến một trường hộp đánh dấu và giá trị là giá trị áp dụng cho trường đó. Giá trị phải là một giá trị boolean.

XML

Mã XML cho trường hộp đánh dấu sẽ có dạng như sau:

<field name="FIELDNAME">TRUE</field>

hoặc

<field name="FIELDNAME">true</field>

Trong đó thuộc tính name chứa một chuỗi tham chiếu đến một trường hộp đánh dấu và văn bản bên trong là giá trị áp dụng cho trường đó. Giá trị văn bản bên trong tuân theo các quy tắc tương tự như giá trị hàm khởi tạo.

Hãy lưu ý rằng sau khi giải tuần tự và tuần tự hoá lại, tất cả giá trị văn bản bên trong sẽ được viết hoa ('TRUE' hoặc 'FALSE'). Điều này đôi khi rất quan trọng khi phân biệt không gian làm việc.

Tuỳ chỉnh

Ký tự dấu kiểm

Bạn có thể sử dụng thuộc tính Blockly.FieldCheckbox.CHECK_CHAR để thay đổi giao diện của dấu kiểm. Giá trị phải là một chuỗi chứa một ký tự unicode.

Trường hộp đánh dấu có biểu tượng trái tim thay vì dấu kiểm

Thuộc tính CHECK_CHAR mặc định là '\u2713' hoặc ✓.

Đây là thuộc tính chung nên sẽ sửa đổi tất cả các trường hộp đánh dấu khi được đặt.

Tạo trình xác thực hộp kiểm

Giá trị của trường hộp đánh dấu là 'TRUE' hoặc 'FALSE'. Do đó, trình xác thực phải chấp nhận các giá trị đó (tức là một chuỗi) và trả về 'TRUE', 'FALSE', null hoặc undefined.

Dưới đây là ví dụ về một trình xác thực giúp ẩn hoặc hiện trường nhập dữ liệu văn bản dựa trên việc hộp đánh dấu có được đánh dấu hay không:

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

Trường hộp đánh dấu có trình xác thực