제출 버튼 클래스를 어떻게 변경합니까?


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

클래스를 "form-submit"에서 "form-submitone"으로 변경하고 싶습니다.

어떻게해야합니까? "form-submit"클래스는 어디에서 왔습니까?

답변:


22

내가 당신이라면 클래스 이름을 변경하지 않고 양식 요소에 자신의 클래스를 추가하십시오. 사용자 정의 모듈에서 또는 주제에서 Drupal 7의 경우 hook_form_alter 를 구현하여이를 수행 할 수 있습니다 . 코드는 다음과 같습니다.

<?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']. 특정 상황에서 제출 요소가 어떤 요소인지 파악해야합니다. $ form 변수를 출력하면됩니다. Devel 모듈을 설치하고 dsm($form);위의 기능에 추가 하는 것이 좋습니다 .


제출 버튼에 수업을 제공 할 수 있다는 것을 어떻게 알 수 있습니까? $ form [ 'actions'] [ 'submit'] [ '# attributes'] [ 'class'] []
enjoylife

2
Forms API 참조 api.drupal.org/api/drupal/…에 있습니다.
marcvangend

api는 $ form [ '# attributes'] = array ( 'class'=> array ( 'search-form')); 왜 이렇게. $ form [ 'actions'] [ 'submit'] [ '# attributes'] [ 'class'] []로 작성하십시오. 그리고 []? 감사합니다
enjoylife

7
그렇게 $form['actions']['submit']['#attributes']['class'] = array('form-submitone');하면 이미 설정된 모든 클래스를 재정의하게됩니다. 그렇게 $form['actions']['submit']['#attributes'] = array('class' => array('form-submitone'));하면 기존 클래스뿐만 아니라 모든 속성을 덮어 씁니다. (PS 위 답변에 대한 추가 내용도 참조하십시오.)
marcvangend

이것은 Drupal 8에서도 작동합니다.
Achraf JEDAY

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
이것은 정확하지 않습니다. #attributes 배열의 "class"항목은 배열이어야합니다.'class' => array("mybtn-class", "mybtn-class2")
DrCord

@devendra 응답 작동하지만, @DrCord 제안에 따라, 그것은해야'#attributes' => array('class' => array('mybtn', 'mybtn-2'))
johnatasjmo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.