Gönderme düğmesi sınıfını nasıl değiştirebilirim?


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

Sınıfı "form-send" den "form-submitone" a değiştirmek istiyorum.

Bunu nasıl yapabilirim? "Form gönderme" sınıfı nereden geliyor?

Yanıtlar:


22

Siz olsaydım, sınıf adını değiştirmezdim, daha çok form öğesine kendi sınıfınızı eklerdim. Bunu, özel bir modüle hook_form_alter uygulayarak veya temanızda (Drupal 7 olması durumunda) yapabilirsiniz. Kod şöyle görünecektir:

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

Bu arada, gönder düğmesi öğesi zorunlu değildir $form['actions']['submit']. Özel durumunuzda hangi düğmenin gönder düğmesi olduğunu bulmanız gerekir. Bunu $ form değişkenini çıkararak yapabilirsiniz; Devel modülünü kurmanızı ve dsm($form);yukarıdaki işleve eklemenizi öneririm .


bunun gönder düğmesine bir sınıf verebileceğini nasıl biliyorsun. $ form ['actions'] ['send'] ['# attributes'] ['class'] []
enjoylife

2
Formlar API başvurusu, api.drupal.org/api/drupal/… .
marcvangend

api bu $ form olarak gösterilir ['# attributes'] = dizi ('sınıf' => dizi ('arama formu')); neden böyle yazıyorsun. $ form ['actions'] ['gönder'] ['# attributes'] ['class'] []. ve bir []? teşekkür ederim
enjoylife

7
Bunu yaparsanız $form['actions']['submit']['#attributes']['class'] = array('form-submitone');, önceden ayarlanmış olan tüm sınıfları geçersiz kılarsınız. Bunu yaparsanız $form['actions']['submit']['#attributes'] = array('class' => array('form-submitone'));, sadece mevcut sınıfların değil tüm niteliklerin üzerine yazacaksınız. (PS Ayrıca yukarıdaki cevaba
eklediğime de

Bu Drupal 8'de de işe yarıyor.
Achraf JEDAY

0

bu kod temelde kullanıcı dor form gönderme düğmesine özel sınıf ekleyin.

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
bu doğru değil, #attributes dizisindeki "sınıf" öğesinin bir dizi olması gerekir:'class' => array("mybtn-class", "mybtn-class2")
DrCord

@Devendra yanıtı çalışıyor olsa da, @DCord önerisini takip etmeli'#attributes' => array('class' => array('mybtn', 'mybtn-2'))
johnatasjmo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.