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

Trường hộp đánh dấu lưu trữ một chuỗi dưới dạng giá trị và một chuỗi làm văn bản. giá trị là 'TRUE' hoặc 'FALSE' và văn bản của giá trị đó 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 giá trị không bắt buộc trình xác thực. Giá trị không bắt buộc nên là 'TRUE', 'FALSE' hoặc boolean, nếu không giá trị mặc định sẽ 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à boolean.

XML

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 trường hợp 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 này. Giá trị văn bản bên trong tuân theo các quy tắc giống như giá trị hàm khởi tạo.

Lưu ý rằng sau khi được giải tuần tự và chuyển đổi tuần tự, tất cả nội dung bên trong các giá trị sẽ được viết hoa ('TRUE' hoặc 'FALSE'). Điều này đôi khi quan trọng khi thay đổi 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 những gì dấu kiểm sẽ như thế nào. Giá trị phải là một chuỗi có chứa unicode .

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

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

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

Tạo trình xác thực hộp đánh dấu

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ị đó (ví dụ: một chuỗi) và trả về 'TRUE', 'FALSE', null hoặc undefined.

Sau đây là ví dụ về trình xác thực giúp ẩn hoặc hiển thị trường nhập văn bản dựa trên liệu hộp kiểm có được chọn 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