ช่องทำเครื่องหมายจะจัดเก็บสตริงเป็นค่าและสตริงเป็นข้อความ ค่าจะเป็น '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');
}
}