Champs de saisie de texte multiligne

Un champ de saisie de texte multiligne stocke une chaîne en tant que valeur et une chaîne en tant que texte. Sa valeur est toujours une chaîne valide, tandis que son texte peut être n'importe quelle chaîne saisie dans son éditeur. Contrairement à un champ de saisie de texte, ce champ accepte également les caractères de retour à la ligne saisis dans l'éditeur.

Champ de saisie de texte multiligne

Champ de saisie de texte multiligne avec l'éditeur ouvert

Champ de saisie de texte multiligne dans le bloc réduit

Création

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

Le constructeur de saisie de texte multiligne accepte une valeur et un validator facultatifs. La valeur doit être convertie en chaîne. Si la valeur est null ou undefined, une chaîne vide est utilisée.

La définition JSON vous permet également de définir l'option spellcheck.

sérialisation

JSON

Le code JSON d'un champ de saisie de texte multiligne se présente comme suit:

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

FIELDNAME est une chaîne faisant référence à un champ de saisie de texte multiligne, et où la valeur est la valeur à appliquer au champ. La valeur suit les mêmes règles que la valeur du constructeur.

XML

Le code XML d'un champ de saisie de texte multiligne se présente comme suit:

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

L'attribut name du champ contient une chaîne faisant référence à un champ de saisie de texte multiligne, et le texte intérieur est la valeur à appliquer au champ. La valeur de texte interne suit les mêmes règles que la valeur du constructeur.

Fonctionnalités

Correcteur orthographique

La fonction setSpellcheck permet de déterminer si le champ doit ou non vérifier l'orthographe du texte d'entrée.

Champs de saisie de texte avec et sans vérification orthographique

Le correcteur orthographique est activé par défaut.

Cela s'applique aux champs individuels. Si vous souhaitez modifier tous les champs, modifiez la propriété Blockly.FieldMultilineInput.prototype.spellcheck_.

Créer un programme de validation de saisie de texte

La valeur d'un champ de saisie de texte multiligne est une chaîne. Tous les validateurs doivent donc l'accepter et renvoyer une chaîne, null ou undefined.

Voici un exemple de programme de validation qui supprime tous les caractères "a" de la chaîne:

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