Champs de saisie de texte

Un champ de saisie de texte stocke une chaîne comme valeur et une chaîne comme texte. Sa valeur est toujours une chaîne valide, tandis que son texte peut être n'importe quelle chaîne saisie dans son éditeur.

Champ de saisie de texte

Bloc avec le libellé "text input:" et un champ de saisie de texte défini sur "default
text".

Champ de saisie de texte avec l'éditeur ouvert

Le même bloc avec le champ en cours de modification.

Champ de saisie de texte dans un bloc réduit

Le même bloc après avoir été réduit. Il porte le libellé "text input: default
text" (saisie de texte : texte par défaut) et présente un bord droit dentelé pour indiquer qu'il est réduit.

Création

JSON

{
  "type": "example_textinput",
  "message0": "text input: %1",
  "args0": [
    {
      "type": "field_input",
      "name": "FIELDNAME",
      "text": "default text",
      "spellcheck": false
    }
  ]
}

JavaScript

Blockly.Blocks['example_textinput'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("text input:")
        .appendField(new Blockly.FieldTextInput('default text'),
            'FIELDNAME');
  }
};

Le constructeur d'entrée de texte accepte une valeur facultative et un validateur facultatif. La valeur doit être convertie en chaîne. Si la valeur est null ou undefined, une chaîne vide sera utilisée.

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

Sérialisation et XML

JSON

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

{
  "fields": {
    "FIELDNAME": "text"
  }
}

FIELDNAME est une chaîne faisant référence à un champ de saisie de texte, et 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 se présente comme suit :

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

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

Personnalisation

Vérification orthographique

La fonction setSpellcheck permet de définir si le champ vérifie l'orthographe du texte saisi ou non.

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

GIF animé montrant deux blocs avec des champs de saisie de texte. Dans le premier bloc, l&#39;orthographe est vérifiée et les mots mal orthographiés sont soulignés d&#39;une ligne rouge ondulée. Dans le deuxième bloc, l&#39;orthographe n&#39;est pas vérifiée et les mots mal orthographiés ne sont pas soulignés.

La vérification orthographique est activée par défaut.

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

Créer un validateur d'entrée de texte

La valeur d'un champ de saisie de texte est une chaîne. Par conséquent, tous les validateurs doivent accepter une chaîne et renvoyer une chaîne, null ou undefined.

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

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

GIF animé montrant la validation d&#39;un champ de saisie de texte. Lorsque l&#39;utilisateur saisit &quot;bbbaaa&quot; et clique ailleurs, le champ est remplacé par &quot;bbb&quot;.