يخزن حقل مربع الاختيار سلسلة كقيمتها والسلسلة كنص لها. وتكون قيمتها '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
لتغيير شكل علامة الاختيار. يجب أن تكون القيمة سلسلة تحتوي على حرف يونيكود.
القيمة التلقائية للسمة 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');
}
}