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 làm văn bản. Giá trị của thuộc tính này là 'TRUE' hoặc 'FALSE', còn văn bản là 'true' hoặc 'false'.

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

Một khối có nhãn "checkbox:" và một trường hộp đánh dấu có dấu kiểm.

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

Khối đó sau khi được thu gọn. Nút này có nhãn "variable: true" và một cạnh phải gồ ghề để cho biết nút đang ở trạng thá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 nhận một giá trị không bắt buộc và một trình xác thực không bắt buộc. Giá trị không bắt buộc phải là 'TRUE', 'FALSE' hoặc giá trị boolean, nếu không, giá trị này sẽ mặc định là false.

Chuyển đổi tuần tự

JSON

JSON cho một 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 trường hộp đánh dấu và giá trị là giá trị cần áp dụng cho trường. Giá trị phải là giá trị boolean.

XML

XML cho một trường hộp đánh dấu 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 trường hộp đánh dấu và văn bản bên trong là giá trị cần á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ị của hàm khởi tạo.

Xin lưu ý rằng sau khi được chuyển đổi tuần tự và chuyển đổi tuần tự lại, tất cả các giá trị văn bản bên trong sẽ ở dạng chữ hoa ('TRUE' hoặc 'FALSE'). Đôi khi, điều này rất quan trọng khi so sánh các không gian làm việc.

Tuỳ chỉnh

Ký tự dấu kiểm

Bạn có thể dùng thuộc tính Blockly.FieldCheckbox.CHECK_CHAR để thay đổi hình dạng của dấu đánh dấu. 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à một 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 được đặ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', vì vậy, trình xác thực sẽ chấp nhận các giá trị đó (tức là một chuỗi) và trả về 'TRUE', 'FALSE', null hoặc undefined.

Sau đây là ví dụ về một trình xác thực ẩn hoặc hiện trường nhập 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

Ảnh GIF động minh hoạ một hộp đánh dấu đang được đánh dấu. Khi bạn đánh dấu vào hộp đánh dấu, một trường văn bản sẽ xuất hiện.