In einem Texteingabefeld wird ein String als Wert und ein String als Text gespeichert. Sein Wert ist immer ein gültiger String, während sein Text ein beliebiger String sein kann, der in den Editor eingegeben wurde.
Texteingabefeld
Texteingabefeld mit geöffnetem Editor
Texteingabefeld in minimiertem Block
Erstellung
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');
}
};
Der Konstruktor für die Texteingabe akzeptiert einen optionalen Wert und einen optionalen Validator. Der Wert sollte in einen String umgewandelt werden. Wenn es null
oder undefined
ist, wird ein leerer String verwendet.
Mit der JSON-Definition können Sie auch die Option spellcheck festlegen.
Serialisierung und XML
JSON
Der JSON-Code für ein Texteingabefeld sieht so aus:
{
"fields": {
"FIELDNAME": "text"
}
}
Dabei ist FIELDNAME
ein String, der auf ein Texteingabefeld verweist, und der Wert ist der Wert, der auf das Feld angewendet werden soll. Der Wert folgt denselben Regeln wie der Konstruktorwert.
XML
Das XML für ein Texteingabefeld sieht so aus:
<field name="FIELDNAME">text</field>
Das Attribut name
des Felds enthält einen String, der auf ein Texteingabefeld verweist, und der innere Text ist der Wert, der auf das Feld angewendet werden soll. Für den Wert des inneren Texts gelten dieselben Regeln wie für den Konstruktorwert.
Anpassung
Rechtschreibprüfung
Mit der Funktion setSpellcheck
können Sie festlegen, ob die Eingabe in einem Feld auf Rechtschreibfehler geprüft werden soll.
Texteingabefelder mit und ohne Rechtschreibprüfung
Die Rechtschreibprüfung ist standardmäßig aktiviert.
Dies gilt für einzelne Felder. Wenn Sie alle Felder ändern möchten, ändern Sie das Attribut Blockly.FieldTextInput.prototype.spellcheck_
.
Validierung für Texteingabe erstellen
Der Wert eines Texteingabefelds ist ein String. Alle Validatoren müssen also einen String akzeptieren und einen String, null
oder undefined
zurückgeben.
Hier ist ein Beispiel für einen Validator, der alle a
-Zeichen aus dem String entfernt:
function(newValue) {
return newValue.replace(/a/g, '');
}