يخزّن حقل الأرقام رقمًا كـ value
وسلسلة كـ text
. يكون value
دائمًا رقمًا صالحًا وفقًا للقيود المحدّدة للحقل عند إنشائه، ويمكن أن يكون النص أي سلسلة يتم إدخالها في المحرّر.
حقل الأرقام
حقل أرقام مع فتح المحرِّر
حقل الأرقام في البلوك المصغّر
الإنشاء
JSON
{
"type": "example_number",
"message0": "number: %1",
"args0": [
{
"type": "field_number",
"name": "FIELDNAME",
"value": 100,
"min": 0,
"max": 100,
"precision": 10
}
]
}
JavaScript
Blockly.Blocks['example_number'] = {
init: function() {
this.appendDummyInput()
.appendField("number:")
.appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
}
};
تتلقّى دالة إنشاء الأرقام ما يلي:
يجب أن يتم تحويل value
إلى رقم. إذا لم يكن كذلك، سيتم استخدام القيمة 0.
نشر الحلقات على نحو متسلسِل
JSON
يبدو رمز JSON لحقل رقمي على النحو التالي:
{
"fields": {
"FIELDNAME": 0
}
}
حيث FIELDNAME
هي سلسلة تشير إلى حقل رقمي، والقيمة هي القيمة التي سيتم تطبيقها على الحقل. تخضع القيمة للقواعد نفسها التي تخضع لها قيمة الدالة الإنشائية.
XML
يبدو رمز XML الخاص بحقل الأرقام على النحو التالي:
<field name="FIELDNAME">0</field>
تحتوي السمة name
للعقدة field
على سلسلة تشير إلى حقل رقمي، أما text
الداخلية للعقدة فهي value
التي سيتم تطبيقها على الحقل. تخضع قيمة النص الداخلي للقواعد نفسها التي تخضع لها قيمة أداة الإنشاء.
القيود
يمكن ضبط القيود في تعريف الحقل أو باستخدام الدالة setConstraints.
أدنى قيمة
تحدّد القيمة min
أصغر قيمة/أكثر قيمة سالبة يمكن أن يحتوي عليها الحقل.
أقصى قيمة
تحدّد قيمة max
أكبر قيمة/أكثر قيمة موجبة يمكن أن يتضمّنها الحقل.
التقريب
تقرِّب الدالة precision
القيمة إلى أقرب مضاعف للدقة. يمكن استخدام ذلك لجعل الحقل يقبل فقط مضاعفات 0 .01 أو 10 أو 42 وما إلى ذلك.
القيود الشائعة
الأرقام الموجبة
لإجبار الحقل على قبول الأرقام الموجبة فقط، اضبط قيمة min
على 1.
الأعداد الصحيحة
لإجبار الحقل على قبول الأعداد الصحيحة فقط، اضبط precision
على 1.
إنشاء أداة للتحقّق من صحة الأرقام
قيمة حقل الأرقام هي رقم، لذا يجب أن تقبل أي أدوات التحقّق number
وأن تعرض number
أو null
أو undefined
.
في ما يلي مثال على أداة التحقّق من الصحة التي تغيّر القيمة إلى 0 أو 1 استنادًا إلى ما إذا كانت القيمة فردية أو زوجية.
function(newValue) {
return newValue % 2;
}