فیلدهای ورودی متن چند خطی

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

فیلد ورودی متن چند خطی

فیلد ورودی متن چندخطی با ویرایشگر باز است

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

ایجاد

JSON

{
  "type": "example_multilinetextinput",
  "message0": "multiline text input: %1",
  "args0": [
    {
      "type": "field_multilinetext",
      "name": "FIELDNAME",
      "text": "default text\n with newline character",
      "spellcheck": false
    }
  ]
}

جاوا اسکریپت

Blockly.Blocks['example_multilinetextinput'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("multiline text input:")
        .appendField(new Blockly.FieldMultilineInput('default text\n with newline character'),
            'FIELDNAME');
  }
};

سازنده ورودی متن چند خطی یک مقدار اختیاری و یک اعتبارسنجی اختیاری می گیرد. مقدار باید به یک رشته ارسال شود. اگر null یا undefined باشد، از یک رشته خالی استفاده می شود.

تعریف JSON همچنین به شما این امکان را می دهد که گزینه بررسی املا را تنظیم کنید.

سریال سازی

JSON

JSON برای فیلد ورودی متن چند خطی به این صورت است:

{
  "fields": {
    "FIELDNAME": "line1\nline2"
  }
}

جایی که FIELDNAME رشته‌ای است که به فیلد ورودی متن چند خطی ارجاع می‌دهد و مقدار آن مقداری است که باید به فیلد اعمال شود. مقدار از همان قوانین ارزش سازنده پیروی می کند.

XML

XML برای یک فیلد ورودی متن چند خطی به این صورت است:

<field name="FIELDNAME">line1&amp;#10;line2</field>

جایی که ویژگی name فیلد حاوی رشته ای است که به فیلد ورودی متن چند خطی ارجاع می دهد و متن داخلی مقداری است که باید به فیلد اعمال شود. مقدار متن داخلی از قوانینی مشابه با مقدار سازنده پیروی می کند.

سفارشی سازی

بررسی املا

تابع setSpellcheck را می توان برای تعیین اینکه آیا فیلد متن ورودی خود را بررسی می کند یا خیر استفاده می شود.

فیلدهای ورودی متن با و بدون املا

املا به طور پیش فرض روشن است.

این برای فیلدهای فردی اعمال می شود. اگر می‌خواهید همه فیلدها را تغییر دهید، ویژگی Blockly.FieldMultilineInput.prototype.spellcheck_ را تغییر دهید.

ایجاد اعتبارسنجی ورودی متن

مقدار یک فیلد ورودی متن چند خطی یک رشته است، بنابراین هر اعتبارسنجی باید یک رشته را بپذیرد و یک رشته، null یا undefined برگرداند.

در اینجا یک نمونه از اعتبارسنجی است که تمام کاراکترهای 'a' را از رشته حذف می کند:

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