回答:
私があなたなら、クラス名を変更するのではなく、独自のクラスをフォーム要素に追加します。カスタムモジュールまたは(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'] = array('form-submitone');
、すでに設定されているすべてのクラスが上書きされます。実行すると$form['actions']['submit']['#attributes'] = array('class' => array('form-submitone'));
、既存のクラスだけでなく、すべての属性が上書きされます。(PS上記の回答への私の追加も参照してください。)
このコードは基本的に、ユーザーdorがフォーム送信ボタンにカスタムクラスを追加します。
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
);
}
'class' => array("mybtn-class", "mybtn-class2")
'#attributes' => array('class' => array('mybtn', 'mybtn-2'))