فیلدهای چک باکس

یک فیلد چک باکس یک رشته را به عنوان مقدار خود و یک رشته را به عنوان متن خود ذخیره می کند. مقدار آن یا 'TRUE' یا 'FALSE' است و متن آن 'true' یا 'false' است.

فیلد چک باکس

فیلد چک باکس در بلوک جمع شده

ایجاد

JSON

{
  "type": "example_checkbox",
  "message0": "checkbox: %1",
  "args0": [
    {
      "type": "field_checkbox",
      "name": "FIELDNAME",
      "checked": true
    }
  ]
}

جاوا اسکریپت

Blockly.Blocks['example_checkbox'] = {
  init: function() {
    this.appendDummyInput()
        .appendField('checkbox:')
        .appendField(new Blockly.FieldCheckbox(true), 'FIELDNAME');
  }
};

سازنده چک باکس یک مقدار اختیاری و یک اعتبارسنجی اختیاری می گیرد. مقدار اختیاری باید 'TRUE' ، 'FALSE' یا یک Boolean باشد، در غیر این صورت به طور پیش‌فرض روی false خواهد بود.

سریال سازی

JSON

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

{
  "fields": {
    "FIELDNAME": true
  }
}

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

XML

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

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

یا

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

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

توجه داشته باشید که پس از سریال‌زدایی و سریال‌سازی مجدد، همه مقادیر متن داخلی به صورت حروف بزرگ ( 'TRUE' یا 'FALSE' ) خواهند بود. این گاهی اوقات هنگام متفاوت کردن فضاهای کاری مهم است.

سفارشی سازی

کاراکتر علامت بزنید

ویژگی Blockly.FieldCheckbox.CHECK_CHAR را می توان برای تغییر ظاهر تیک مورد استفاده قرار داد. مقدار باید یک رشته حاوی یک کاراکتر یونیکد باشد.

فیلد چک باکس با قلب به جای علامت

ویژگی CHECK_CHAR به طور پیش‌فرض روی «\u2713» یا ✓ است.

این یک ویژگی جهانی است، بنابراین وقتی تنظیم شود، تمام فیلدهای چک باکس را تغییر می دهد.

ایجاد تأیید کننده چک باکس

مقدار فیلد چک باکس یا 'TRUE' یا 'FALSE' است، بنابراین یک اعتبارسنجی باید آن مقادیر (به عنوان مثال یک رشته) را بپذیرد و 'TRUE' ، 'FALSE' ، null یا undefined برگرداند.

در اینجا نمونه‌ای از اعتبارسنجی است که یک فیلد ورودی متن را بر اساس علامت زدن چک باکس پنهان یا نشان می‌دهد:

  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');
    }
  }

فیلد چک باکس با اعتبارسنجی