Champs numériques

Un champ numérique stocke un nombre en tant que value et une chaîne en tant que text. C'est value est toujours un nombre valide, tel que défini par les contraintes définies pour le domaine lors de la création ; son texte peut être n'importe quelle chaîne saisie dans son éditeur.

Champ numérique

Champ numérique avec l'éditeur ouvert

Champ numérique dans le bloc réduit

Création

JSON

{
  "type": "example_number",
  "message0": "number: %1",
  "args0": [
    {
      "type": "field_number",
      "name": "FIELDNAME",
      "value": 100,
      "min": 0,
      "max": 100,
      "precision": 10
    }
  ]
}

JavaScript

Blockly.Blocks['example_number'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("number:")
        .appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
  }
};

Le constructeur de nombre utilise les éléments suivants:

value doit être converti en nombre. Sinon, la valeur 0 est utilisée.

Sérialisation

JSON

Le code JSON d'un champ numérique se présente comme suit:

{
  "fields": {
    "FIELDNAME": 0
  }
}

FIELDNAME est une chaîne qui fait référence à un champ numérique, et où la valeur est celle à appliquer au champ. La valeur suit les mêmes règles que la valeur du constructeur.

XML

Le code XML d'un champ numérique se présente comme suit:

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

L'attribut name du nœud field contient une chaîne faisant référence à un nombre et la text interne du nœud est l'value à appliquer au champ. La la valeur de texte interne suit les mêmes règles que la valeur du constructeur.

Contraintes

Les contraintes peuvent être définies dans la définition du champ ou à l'aide de la propriété setConstraints .

Valeur minimale

La valeur min définit la valeur la plus petite/la plus négative que le champ est autorisé à saisir contient.

Valeur maximale

La valeur max définit la valeur la plus élevée/la plus positive que le champ est autorisé à saisir. contient.

Arrondissement

precision arrondit la valeur au multiple de précision le plus proche. Il peut s'agir utilisé pour que le champ n'accepte que les multiples de 0,01, 10, 42, etc.

Contraintes courantes

Nombres positifs

Pour forcer votre champ à n'accepter que des nombres positifs, définissez la valeur min sur 1.

Entiers

Pour forcer votre champ à n'accepter que des entiers, définissez precision sur 1.

Créer un validateur de nombre

La valeur d'un champ numérique est un nombre. Par conséquent, tous les validateurs doivent accepter un number et renvoient number, null ou undefined.

Voici un exemple de programme de validation qui remplace la valeur par 0 ou 1. selon que la valeur est impaire ou égale.

function(newValue) {
  return newValue % 2;
}