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