Campi della casella di controllo

Un campo con casella di controllo memorizza una stringa come valore e una stringa come testo. Il suo valore è 'TRUE' o 'FALSE' e il suo testo è 'true' o 'false'.

Campo casella di controllo

Campo della casella di controllo sul blocco compresso

Creazione

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');
  }
};

Il costruttore della casella di controllo accetta un valore facoltativo e uno validator facoltativo. Il valore facoltativo deve essere 'TRUE', 'FALSE' o booleano, altrimenti verrà impostato su false per impostazione predefinita.

Serializzazione

JSON

Il codice JSON per un campo della casella di controllo ha il seguente aspetto:

{
  "fields": {
    "FIELDNAME": true
  }
}

Dove FIELDNAME è una stringa che fa riferimento a un campo di casella di controllo e il valore è il valore da applicare al campo. Il valore deve essere un valore booleano.

XML

L'XML per un campo della casella di controllo ha il seguente aspetto:

<field name="FIELDNAME">TRUE</field>

o

<field name="FIELDNAME">true</field>

In cui l'attributo name contiene una stringa che fa riferimento a un campo di controllo e il testo interno è il valore da applicare al campo. Il valore del testo interno segue le stesse regole del valore del costruttore.

Tieni presente che dopo la deserializzazione e la riceralizzazione, tutti i valori del testo interno saranno in maiuscolo ('TRUE' o 'FALSE'). A volte questo è importante quando si differenziano le aree di lavoro.

Funzionalità di

Segno di spunta

La proprietà Blockly.FieldCheckbox.CHECK_CHAR può essere utilizzata per modificare l'aspetto del segno di spunta. Il valore deve essere una stringa contenente un carattere Unicode.

Campo della casella di controllo con un cuore anziché un segno di spunta

Il valore predefinito della proprietà CHECK_CHAR è "\u2713" o ✓.

Si tratta di una proprietà globale, quindi modificherà tutti i campi delle caselle di controllo se impostati.

Creazione di uno strumento di convalida delle caselle di controllo

Il valore di un campo della casella di controllo è 'TRUE' o 'FALSE', pertanto uno strumento di convalida dovrebbe accettare questi valori (ad es. una stringa) e restituire 'TRUE', 'FALSE', null o undefined.

Ecco un esempio di uno strumento di convalida che nasconde o mostra un campo di immissione di testo a seconda che la casella di controllo sia selezionata o meno:

  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');
    }
  }

Campo della casella di controllo con uno strumento di convalida