ফর্ম এপিআই-তে সংখ্যার ক্ষেত্র প্রকার


12

আমি এফএপিআই ব্যবহার করে কোনও ফর্মের সাথে একটি "নম্বর" ফিল্ড প্রকার যুক্ত করার চেষ্টা করছি:

$form['phone_number']['areacode'] = array(
  '#type' => 'textfield',
  '#title' => '---',
  '#width' => '30%',
  '#align' => 'center',
  '#required' => true,
  '#maxlength' => 3
);

আমি TYPE কে "সংখ্যা" তে পরিবর্তন করি এবং ফিল্ডটি মোটেও উত্পন্ন হয় না। নম্বর মডিউল সক্ষম করা হয়েছে। আমি নিম্নলিখিত থিম ফাংশন বাস্তবায়ন করেছি:

  • MYTHEME_form_element
  • MYTHEME_textfield
  • MYTHEME_container

এই ক্ষেত্রটির পিছনে কী থাকতে পারে যখন আমি ব্যবহার করব #type = numberনা #type = number_integer, ইত্যাদি?

এটির সাথে এর কিছু করার থাকতে পারে:

কাস্টম ফর্মগুলির কোডে ম্যানুয়ালি নম্বর ক্ষেত্র (পূর্ণসংখ্যা এবং দশমিক) তৈরি করা

তবে আমি আসলে এই টাইপটি এইচটিএমএলে "নম্বর" হিসাবে রেন্ডার করতে চাই যাতে স্মার্ট ফোনগুলি একটি সংখ্যা ডায়ালার দেখায়

কোন ধারনা?

উত্তর:


13
$form['my_element'] = array(
    '#type' => 'textfield',
    '#attributes' => array(
        ' type' => 'number', // insert space before attribute name :)
    ),
    '#title' => 'My number',
    '#required' => true,
    '#maxlength' => 3
);

কি পরিষ্কার না? "ফর্ম এপিআই তে সংখ্যার ক্ষেত্রের ধরণ" দরকার? পছন্দসই মানের সাথে অ্যাট্রিবিউট " অ্যারে " ( স্পেস সহ ) সংজ্ঞা দিন: সংখ্যা, তারিখ, রঙ ... নোংরা হ্যাক
আর্থার

সর্বাধিক দৈর্ঘ্য কাজ করছে না
লগেশ্বরন

1
এটি একটি জায়গা আছে কেন প্রয়োজন?
ফ্রিজম্ম্গ

এটি অবৈধ এইচটিএমএল <input type="number" type="text">
বিটিডব্লুতে

5

আপনি এটির জন্য মডিউল উপাদানগুলি ইনস্টল এবং ব্যবহার করতে পারেন ।


এইচটিএমএল 5 নম্বর ক্ষেত্রটি পাওয়ার সঠিক উপায়।
ডিসিফার

1
#type="numberfield"এই মডিউলটি ব্যবহার করার সময় ক্ষেত্রটি সামঞ্জস্য করার সঠিক উপায়।
ওয়াইপিক্রাম্বুল

1
এই মডিউলটি ইতিমধ্যে দ্রুপাল ৮-এর মূলটিতে অন্তর্ভুক্ত রয়েছে একটি নম্বর ক্ষেত্র তৈরির সঠিক উপায়টি রেন্ডার অ্যারেটিতে '#type' => 'number'(নয় 'numberfield') ব্যবহার করে ।
ফ্রিজম্ম্গ

2

আমি পার্টিতে কিছুটা দেরি করেছি। সমস্যাটি হ'ল থিম_টেক্সটফিল্ড (ডি 7:, includes/form.incলাইন 3924ff) হার্ড-কোডগুলি $element['#attributes']['type'] = 'text';

আপনি বললে কলটি মোড়তে পারেন if (!isset($element['#attributes']['type'])) { ... }বা প্যাচ https://www.drupal.org/node/2545318 প্রয়োগ হওয়ার জন্য অপেক্ষা করতে পারেন।


1

এটি নীচে আপনার কোড ..

$form['phone_number']['areacode'] = array(
'#type' => 'textfield',
'#title' => '---',
'#width' => '30%',
'#align' => 'center',
'#required' => true,
'#maxlength' => 3
);

দয়া করে আমাকে বলুন ['ফোন_ নাম্বার'], এটি একটি ধারক কিনা বা এটি আপনার ফর্মের মধ্যে রয়েছে বা নেই এবং আপনি যদি নিজের আকারে কাস্টম ফিল্ড তৈরি করতে চান তবে আপনার হুক_ফর্ম_ল্টার হুক_ফর্ম_ল্টার ব্যবহার করা উচিত

মত

  function mymodule_form_alter($form_id, &$form) {
 if ($form_id == 'form_id') {

$form['field_name'] = array(
 '#type' => 'textfield',     
 '#title' => t('title'),
 '#description' => t('Description.'),
 '#width' => '30%',
 '#align' => 'center',
 '#required' => true,
 '#maxlength' => 3
 );
  }
   }

আশা করি এটি আপনাকে সাহায্য করবে ..


0

আমি এটি # টাইপ ক্ষেত্রের জন্য অবৈধ মান নিয়ে কাজ করতে দেখছি না তবে আপনি এর মতো কিছু করতে পারেন:

ফর্ম উপাদান:

$form['my_element'] = array(
    '#type' => 'textfield',
    '#attributes' => array(
        'data-type' => 'number',
    ),
    '#title' => '---',
    '#width' => '30%',
    '#align' => 'center',
    '#required' => true,
    '#maxlength' => 3
);

এবং থিম_টেক্সটফিল্ড বাস্তবায়ন করছে

if(isset($element['#attributes']['data-type']) && $element['#attributes']['data-type'] === 'number'){
    $output = '<input type="number" />';
}else{
    $output = '<input' . drupal_attributes($element['#attributes']) . ' />';
}

আমি সমাধানের জন্য একই জিনিসটি ভাবছিলাম - তবে আপনি কী বোঝাতে চেয়েছেন এটি কোনও অবৈধ # মূল্য দিয়ে কাজ করবে না ???
অ্যালেক্স.ব্যারিলস্কি

ঠিক আছে যদি আপনি # টাইপের জন্য কোনও বৈধ মান না রাখেন তবে ফর্ম উপাদানটি মোটেও রেন্ডার হবে না, যেমনটি আপনি আগেই বলেছিলেন।
ভিক্টর লাজভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.