ช่องช่องทําเครื่องหมายจะจัดเก็บสตริงเป็นค่าและสตริงเป็นข้อความ ค่าของฟิลด์นี้คือ 'TRUE'
หรือ 'FALSE'
และข้อความคือ 'true'
หรือ 'false'
ช่องทําเครื่องหมาย
![บล็อกที่มีป้ายกำกับ "ช่องทำเครื่องหมาย:" และช่องทำเครื่องหมายที่มีเครื่องหมายถูก
ช่องทําเครื่องหมายในบล็อกที่ยุบ
การสร้างวิดีโอ
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');
}
};
ตัวสร้างช่องทําเครื่องหมายจะรับค่าที่ไม่บังคับและโปรแกรมตรวจสอบที่ไม่บังคับ ค่าที่ไม่บังคับควรเป็น 'TRUE'
, 'FALSE'
หรือบูลีน มิเช่นนั้นระบบจะใช้ค่าเริ่มต้นเป็น false
การเรียงอันดับ
JSON
JSON สำหรับช่องช่องทําเครื่องหมายมีลักษณะดังนี้
{
"fields": {
"FIELDNAME": true
}
}
โดยที่ FIELDNAME
คือสตริงที่อ้างอิงช่องช่องทําเครื่องหมาย และค่าคือค่าที่จะใช้กับช่อง ค่าต้องเป็นบูลีน
XML
XML สำหรับช่องทําเครื่องหมายมีลักษณะดังนี้
<field name="FIELDNAME">TRUE</field>
หรือ
<field name="FIELDNAME">true</field>
โดยที่แอตทริบิวต์ name
มีสตริงที่อ้างอิงช่องช่องทําเครื่องหมาย และข้อความด้านในคือค่าที่จะใช้กับช่อง ค่าข้อความด้านในจะเป็นไปตามกฎเดียวกับค่าคอนสตรคเตอร์
โปรดทราบว่าหลังจากแปลงค่าแบบอนุกรมและแปลงค่าแบบอนุกรมอีกครั้งแล้ว ค่าข้อความภายในทั้งหมดจะเป็นตัวพิมพ์ใหญ่ ('TRUE'
หรือ 'FALSE'
) ซึ่งบางครั้งก็สำคัญเมื่อเปรียบเทียบพื้นที่ทำงาน
การปรับแต่ง
อักขระเครื่องหมายถูก
คุณสามารถใช้พร็อพเพอร์ตี้ Blockly.FieldCheckbox.CHECK_CHAR
เพื่อเปลี่ยนลักษณะของเครื่องหมายถูก ค่าควรเป็นสตริงที่มีอักขระ Unicode
ค่าเริ่มต้นของพร็อพเพอร์ตี้ CHECK_CHAR
คือ '\u2713' หรือ ✓
นี่เป็นพร็อพเพอร์ตี้ส่วนกลาง ดังนั้นจึงจะแก้ไขช่องทําเครื่องหมายทั้งหมดเมื่อตั้งค่า
การสร้างโปรแกรมตรวจสอบช่องทําเครื่องหมาย
ค่าของช่องช่องทําเครื่องหมายคือ 'TRUE'
หรือ 'FALSE'
ดังนั้นโปรแกรมตรวจสอบควรยอมรับค่าเหล่านั้น (เช่น สตริง) และแสดงผลเป็น 'TRUE'
, 'FALSE'
, null
หรือ undefined
ต่อไปนี้คือตัวอย่างโปรแกรมตรวจสอบที่ซ่อนและแสดงช่องป้อนข้อความโดยขึ้นอยู่กับว่ามีการเลือกช่องทำเครื่องหมายหรือไม่
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');
}
}