Un champ de type case à cocher stocke une chaîne en tant que valeur et une chaîne en tant que texte. Sa valeur est 'TRUE'
ou 'FALSE'
, et son texte est 'true'
ou 'false'
.
Champ de case à cocher
Champ de case à cocher sur le bloc réduit
Création
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');
}
};
Le constructeur de case à cocher accepte une valeur et un validator facultatifs. La valeur facultative doit être 'TRUE'
, 'FALSE'
ou une valeur booléenne. Sinon, elle est définie par défaut sur false
.
sérialisation
JSON
Le code JSON d'un champ de case à cocher se présente comme suit:
{
"fields": {
"FIELDNAME": true
}
}
Où FIELDNAME
est une chaîne faisant référence à un champ de case à cocher, et la valeur est la valeur à appliquer au champ. La valeur doit être une valeur booléenne.
XML
Le code XML d'un champ à cases à cocher se présente comme suit:
<field name="FIELDNAME">TRUE</field>
ou
<field name="FIELDNAME">true</field>
Où l'attribut name
contient une chaîne faisant référence à un champ de case à cocher, 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.
Notez qu'après avoir été désérialisée et resérialisée, toutes les valeurs de texte internes sont en majuscules ('TRUE'
ou 'FALSE'
). Cela est parfois important lorsque vous comparez les différents espaces de travail.
Fonctionnalités
Coche
La propriété Blockly.FieldCheckbox.CHECK_CHAR
peut être utilisée pour modifier l'apparence de la coche. La valeur doit être une chaîne contenant un caractère Unicode.
La propriété CHECK_CHAR
est définie par défaut sur "\u2713" ou ✓.
Comme il s'agit d'une propriété globale, tous les champs de la case à cocher seront modifiés lorsqu'ils seront définis.
Créer un outil de validation de cases à cocher
La valeur d'un champ de case à cocher est 'TRUE'
ou 'FALSE'
. Un programme de validation doit donc accepter ces valeurs (c'est-à-dire une chaîne) et renvoyer 'TRUE'
, 'FALSE'
, null
ou undefined
.
Voici un exemple de programme de validation qui masque ou affiche un champ de saisie de texte selon que la case est cochée ou non:
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');
}
}