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