Campi della casella di controllo

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

Campo casella di controllo

![Un blocco con l'etichetta "casella di controllo" e un campo della casella di controllo con un segno di spunta.

Campo della casella di controllo nel blocco compresso

Lo stesso blocco dopo essere stato compresso. Ha l'etichetta "variabile: true" e un canto destro frastagliato per indicare che è compressa.

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 un convalidatore facoltativo. Il valore facoltativo deve essere 'TRUE', 'FALSE' o un valore booleano, altrimenti il valore predefinito sarà false.

Serializzazione

JSON

Il JSON per un campo di casella di controllo è il seguente:

{
  "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 booleano.

XML

Il codice XML per un campo di casella di controllo è il seguente:

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

o

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

L'attributo name contiene una stringa che fa riferimento a un campo di casella 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 essere stati deserializzati e serializzati di nuovo, tutti i valori di testo interno saranno in maiuscolo ('TRUE' o 'FALSE'). A volte questo è importante quando si confrontano gli spazi di lavoro.

Personalizzazione

Carattere 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 ✓.

Poiché si tratta di una proprietà globale, quando viene impostata modifica tutti i campi delle caselle di controllo.

Creazione di un convalidatore di caselle di controllo

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

Ecco un esempio di convalidatore che nasconde o mostra un campo di immissione di testo in base al fatto 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 di casella di controllo con uno strumento di convalida

Una GIF animata che mostra la selezione di una casella di controllo. Quando la casella di controllo è selezionata, viene visualizzato un campo di testo.