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