Campi di immissione testo multilinea

Un campo di immissione di testo su più righe memorizza una stringa come valore e una stringa come testo. Il suo valore è sempre una stringa valida, mentre il suo testo può essere una qualsiasi stringa inserita nell'editor. Diversamente da un campo di immissione di testo, questo campo supporta anche i caratteri di nuova riga inseriti nell'editor.

Campo di immissione testo su più righe

Campo di immissione di testo multilinea con editor aperto

Campo di immissione testo su più righe nel blocco compresso

Creazione

JSON

{
  "type": "example_multilinetextinput",
  "message0": "multiline text input: %1",
  "args0": [
    {
      "type": "field_multilinetext",
      "name": "FIELDNAME",
      "text": "default text\n with newline character",
      "spellcheck": false
    }
  ]
}

JavaScript

Blockly.Blocks['example_multilinetextinput'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("multiline text input:")
        .appendField(new Blockly.FieldMultilineInput('default text\n with newline character'),
            'FIELDNAME');
  }
};

Il costruttore dell'input di testo multilinea accetta un valore facoltativo e uno validator facoltativo. Il valore deve essere trasmesso a una stringa. Se è null o undefined, verrà utilizzata una stringa vuota.

La definizione JSON consente anche di impostare l'opzione di controllo ortografico.

Serializzazione

JSON

Il codice JSON per un campo di immissione di testo su più righe ha il seguente aspetto:

{
  "fields": {
    "FIELDNAME": "line1\nline2"
  }
}

Dove FIELDNAME è una stringa che fa riferimento a un campo di immissione di testo su più righe e il valore è il valore da applicare al campo. Il valore segue le stesse regole del valore del costruttore.

XML

L'XML per un campo di immissione di testo su più righe ha il seguente aspetto:

<field name="FIELDNAME">line1&amp;#10;line2</field>

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

Funzionalità di

Controllo ortografico

La funzione setSpellcheck può essere utilizzata per stabilire se eseguire il controllo ortografico del campo sul testo di input o meno.

Campi di immissione testo con e senza controllo ortografico

Il controllo ortografico è attivo per impostazione predefinita.

Questo vale per i singoli campi. Se vuoi modificare tutti i campi, modifica la proprietà Blockly.FieldMultilineInput.prototype.spellcheck_.

Creazione di uno strumento di convalida dell'input di testo

Il valore di un campo di immissione di testo su più righe è una stringa, quindi qualsiasi convalidatore deve accettare una stringa e restituire una stringa, null o undefined.

Ecco un esempio di uno strumento di convalida che rimuove tutti i caratteri "a" dalla stringa:

function(newValue) {
  return newValue.replace(/a/gm, '');
}