שדות של תיבות סימון

שדה של תיבת סימון שומר מחרוזת בתור הערך שלה, ומחרוזת בתור הטקסט שלה. הערך שלו הוא '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 מכיל מחרוזת שמפנה לשדה של תיבת סימון, והטקסט הפנימי הוא הערך שיש להחיל על השדה. ערך הטקסט הפנימי פועל לפי אותם כללים כמו הערך של ה-constructor.

שימו לב: אחרי שעבר תהליך deserialization וביצוע reseriality, כל ערכי הטקסט הפנימיים יהיו באותיות רישיות ('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');
    }
  }

שדה תיבת סימון עם מאמת