یک فیلد ورودی متن، یک رشته را به عنوان مقدار و یک رشته را به عنوان متن ذخیره میکند. مقدار آن همیشه یک رشته معتبر است، در حالی که متن آن میتواند هر رشتهای باشد که در ویرایشگر آن وارد شده است.
فیلد ورودی متن

فیلد ورودی متن با ویرایشگر باز

فیلد ورودی متن در بلوک جمع شده

خلقت
جیسون
{
"type": "example_textinput",
"message0": "text input: %1",
"args0": [
{
"type": "field_input",
"name": "FIELDNAME",
"text": "default text",
"spellcheck": false
}
]
}
جاوا اسکریپت
Blockly.Blocks['example_textinput'] = {
init: function() {
this.appendDummyInput()
.appendField("text input:")
.appendField(new Blockly.FieldTextInput('default text'),
'FIELDNAME');
}
};
سازندهی ورودی متن، یک مقدار اختیاری و یک اعتبارسنج اختیاری میگیرد. مقدار باید به یک رشته تبدیل شود. اگر null یا undefined باشد، از یک رشتهی خالی استفاده میشود.
تعریف JSON همچنین به شما امکان میدهد گزینه بررسی املا را تنظیم کنید.
سریالسازی و XML
جیسون
JSON برای یک فیلد ورودی متن به این شکل است:
{
"fields": {
"FIELDNAME": "text"
}
}
که در آن FIELDNAME رشتهای است که به یک فیلد ورودی متن اشاره میکند و value مقداری است که قرار است به فیلد اعمال شود. این value از همان قوانین مقدار سازنده پیروی میکند.
XML
XML برای یک فیلد ورودی متن به این شکل است:
<field name="FIELDNAME">text</field>
جایی که ویژگی name فیلد شامل یک رشته است که به یک فیلد ورودی متن اشاره میکند و متن داخلی مقداری است که باید به فیلد اعمال شود. مقدار متن داخلی از همان قوانین مقدار سازنده پیروی میکند.
سفارشیسازی
غلطیاب املایی
تابع setSpellcheck میتواند برای تنظیم این که آیا فیلد متن ورودی خود را از نظر املایی بررسی کند یا خیر، استفاده شود.
فیلدهای ورودی متن با و بدون غلطیاب املایی

بررسی املا به طور پیشفرض فعال است.
این مورد برای فیلدهای تکی اعمال میشود. اگر میخواهید همه فیلدها را تغییر دهید، ویژگی Blockly.FieldTextInput.prototype.spellcheck_ را تغییر دهید.
ایجاد یک اعتبارسنج ورودی متن
مقدار یک فیلد ورودی متن، یک رشته است، بنابراین هر اعتبارسنجی باید یک رشته را بپذیرد و یک رشته، null یا undefined را برگرداند.
در اینجا مثالی از یک اعتبارسنج که تمام کاراکترهای a را از رشته حذف میکند، آورده شده است:
function(newValue) {
return newValue.replace(/a/g, '');
}
