টেক্সট ইনপুট ক্ষেত্র

একটি টেক্সট ইনপুট ফিল্ড তার ভ্যালু হিসেবে একটি স্ট্রিং এবং টেক্সট হিসেবে একটি স্ট্রিং সংরক্ষণ করে। এর ভ্যালু সর্বদা একটি বৈধ স্ট্রিং হয়, অপরদিকে এর টেক্সট এডিটরে প্রবেশ করানো যেকোনো স্ট্রিং হতে পারে।

টেক্সট ইনপুট ফিল্ড

"টেক্সট ইনপুট:" লেবেলযুক্ত একটি ব্লক এবং একটি টেক্সট ইনপুট ফিল্ড, যা "ডিফল্ট টেক্সট" হিসেবে সেট করা আছে।

এডিটর খোলা সহ টেক্সট ইনপুট ফিল্ড

একই ব্লক যেখানে ফিল্ডটি সম্পাদনা করা হচ্ছে।

সংকুচিত ব্লকে টেক্সট ইনপুট ফিল্ড

সংকুচিত হওয়ার পর একই ব্লক। এতে "text input: default text" লেবেলটি রয়েছে এবং এটি যে সংকুচিত তা দেখানোর জন্য এর ডানদিকের কিনারাটি অমসৃণ।

সৃষ্টি

JSON

{
  "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 সংজ্ঞাটি আপনাকে বানান পরীক্ষা করার বিকল্পটিও সেট করার সুযোগ দেয়।

সিরিয়ালাইজেশন এবং এক্সএমএল

JSON

একটি টেক্সট ইনপুট ফিল্ডের JSON দেখতে এইরকম:

{
  "fields": {
    "FIELDNAME": "text"
  }
}

এখানে FIELDNAME হলো একটি স্ট্রিং যা একটি টেক্সট ইনপুট ফিল্ডকে নির্দেশ করে, এবং value হলো সেই মান যা ফিল্ডটিতে প্রয়োগ করা হবে। এই value-এর নিয়মাবলী কনস্ট্রাক্টর ভ্যালুর নিয়মাবলীর অনুরূপ।

এক্সএমএল

একটি টেক্সট ইনপুট ফিল্ডের XML দেখতে এইরকম:

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

যেখানে ফিল্ডের name অ্যাট্রিবিউটে একটি টেক্সট ইনপুট ফিল্ডকে নির্দেশকারী স্ট্রিং থাকে, এবং ইনার টেক্সট হলো ফিল্ডটিতে প্রয়োগ করার মান। ইনার টেক্সট মানটি কনস্ট্রাক্টর মানের মতোই একই নিয়ম অনুসরণ করে।

কাস্টমাইজেশন

বানান পরীক্ষা

ফিল্ডটি তার ইনপুট টেক্সটের বানান পরীক্ষা করবে কি না, তা নির্ধারণ করতে setSpellcheck ফাংশনটি ব্যবহার করা যায়।

বানান পরীক্ষা সহ এবং বানান পরীক্ষা ছাড়া টেক্সট ইনপুট ফিল্ড

একটি অ্যানিমেটেড জিআইএফ যেখানে টেক্সট ইনপুট ফিল্ডসহ দুটি ব্লক দেখানো হচ্ছে। প্রথম ব্লকটিতে স্পেলচেক চালু আছে এবং ভুল বানানের শব্দগুলোর নিচে একটি ঢেউ খেলানো লাল রেখা দিয়ে দাগ দেওয়া আছে। দ্বিতীয় ব্লকটিতে স্পেলচেক বন্ধ আছে এবং ভুল বানানের শব্দগুলোর নিচে দাগ দেওয়া নেই।

বানান পরীক্ষা ডিফল্টরূপে চালু থাকে।

এটি প্রতিটি ফিল্ডের জন্য প্রযোজ্য। যদি আপনি সমস্ত ফিল্ড পরিবর্তন করতে চান, তাহলে Blockly.FieldTextInput.prototype.spellcheck_ প্রপার্টিটি পরিবর্তন করুন।

একটি টেক্সট ইনপুট ভ্যালিডেটর তৈরি করা

একটি টেক্সট ইনপুট ফিল্ডের ভ্যালু যেহেতু একটি স্ট্রিং, তাই যেকোনো ভ্যালিডেটরকে অবশ্যই একটি স্ট্রিং গ্রহণ করতে হবে এবং একটি স্ট্রিং, null বা undefined রিটার্ন করতে হবে।

এখানে এমন একটি ভ্যালিডেটরের উদাহরণ দেওয়া হলো যা স্ট্রিং থেকে সমস্ত a অক্ষর মুছে ফেলে:

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

একটি অ্যানিমেটেড জিআইএফ-এ একটি টেক্সট ইনপুট ফিল্ড যাচাই করার প্রক্রিয়া দেখানো হচ্ছে। যখন ব্যবহারকারী "bbbaaa" টাইপ করে এবং অন্য কোথাও ক্লিক করে, তখন ফিল্ডটি "bbb"-তে পরিবর্তিত হয়ে যায়।