আমি কীভাবে জমা দেওয়ার বোতামের ক্লাসটি পরিবর্তন করব?


12
 <input type="submit" class="form-submit" value="" name="op" id="edit-submit">

আমি ক্লাসটি "ফর্ম-জমা" থেকে "ফর্ম-সাবমিটোন" এ পরিবর্তন করতে চাই।

আমি কীভাবে এটি করতে পারি? ক্লাস "ফর্ম-জমা" কোথা থেকে আসে?

উত্তর:


22

আমি যদি আপনি হয়ে থাকি তবে আমি শ্রেণীর নাম পরিবর্তন করতাম না বরং ফর্ম উপাদানটিতে নিজের ক্লাস যুক্ত করতাম। আপনি কাস্টম মডিউলে হুক_ফর্ম_্যাল্টার প্রয়োগ করে বা আপনার থিমের (ড্রুপাল of এর ক্ষেত্রে) এটি প্রয়োগ করতে পারেন । কোডটি এরকম কিছু দেখাচ্ছে:

<?php
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id = 'my_form') {
    $form['actions']['submit']['#attributes']['class'][] = 'form-submitone';
  }
}
?>

যাইহোক, সাবমিট বাটন উপাদান অগত্যা নয় $form['actions']['submit']। আপনার নির্দিষ্ট পরিস্থিতিতে কোন উপাদানটি জমা দেওয়ার বোতামটি তা আপনাকে খুঁজে বের করতে হবে। আপনি $ ফর্ম ভেরিয়েবল আউটপুট করে এটি করতে পারেন; আমি দেভেল মডিউলটি ইনস্টল করার এবং dsm($form);উপরের ফাংশনে যুক্ত করার পরামর্শ দিচ্ছি ।


আপনি কীভাবে জানেন যে এটি সাবমিট বাটনে কোনও শ্রেণি দিতে পারে $ $ ফর্ম ['ক্রিয়া'] ['সাবমিট'] ['# গুণাবলী'] ['শ্রেণি'] []
উপভোগ লাইভ

2
এটি ফর্ম এপিআই রেফারেন্সে রয়েছে, api.drupal.org/api/drupal/…
মার্ভানজেন্ডেন্ড

এপিআই এই $ রূপ হিসাবে দেখায় ['# গুণাবলী'] = অ্যারে ('শ্রেণি' => অ্যারে ('অনুসন্ধান-ফর্ম')); আপনি কেন এটি লেখেন $ $ রূপ ['ক্রিয়া'] ['জমা'] ['# বৈশিষ্ট্য'] ['শ্রেণি'] []। এবং একটি [] আছে? আপনাকে ধন্যবাদ
উপভোগ লাইভ

7
আপনি যদি এটি করেন তবে আপনি $form['actions']['submit']['#attributes']['class'] = array('form-submitone');ইতিমধ্যে সেট করা সমস্ত শ্রেণিকে ওভাররাইড করবেন। আপনি যদি এটি করেন তবে আপনি $form['actions']['submit']['#attributes'] = array('class' => array('form-submitone'));কেবল বিদ্যমান ক্লাসগুলিই নয়, সমস্ত বৈশিষ্ট্যগুলিও ওভাররাইট করে ফেলবেন। (পিএস উপরের উত্তরের সাথে আমার সংযোজনটিও দেখুন))
মার্চভেনজেন্ড

এটি ড্রুপাল 8-তেও কাজ করে।
আছরাফ জেদায়

0

এই কোডটি মূলত ব্যবহারকারী ফর্ম জমা বোতামে আপনার কাস্টম ক্লাস যুক্ত করুন।

function subscriber_form(){
    $form['submit'] = array(
    '#type'  => 'submit',
    '#attributes'=>array('class'=> array('mybtn')),
    '#ajax' => array(
      'callback' => 'subscriber_ajax_callback',
    ),
    '#value' =>'Submit', // @FIXME doesn't render quotes properly
  );

}

2
এটি সঠিক নয়, # শ্রেণিবদ্ধ অ্যারেতে "শ্রেণি" আইটেমটি অ্যারে হওয়া দরকার:'class' => array("mybtn-class", "mybtn-class2")
ড্রকর্ড

যদিও @ দেবেন্দ্র উত্তরটি কাজ করছে, @ ডিআরকর্ডের পরামর্শ অনুসরণ করে, এটি হওয়া উচিত'#attributes' => array('class' => array('mybtn', 'mybtn-2'))
jahnatasjmo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.