يخزّن حقل مربّع الاختيار سلسلة كقيمة وسلسلة كنص. تكون قيمته إما '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');
}
}