<input type="submit" class="form-submit" value="" name="op" id="edit-submit">
Chcę zmienić klasę z „formularz-przesłać” na „formularz-przesłać”.
Jak mogę to zrobić? Skąd pochodzi klasa „form-submission”?
<input type="submit" class="form-submit" value="" name="op" id="edit-submit">
Chcę zmienić klasę z „formularz-przesłać” na „formularz-przesłać”.
Jak mogę to zrobić? Skąd pochodzi klasa „form-submission”?
Odpowiedzi:
Gdybym był tobą, nie zmieniłbym nazwy klasy, a raczej dodałbym własną klasę do elementu formularza. Możesz to zrobić, implementując hook_form_alter w niestandardowym module lub (w przypadku Drupal 7) w swoim motywie. Kod wyglądałby mniej więcej tak:
<?php
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id = 'my_form') {
$form['actions']['submit']['#attributes']['class'][] = 'form-submitone';
}
}
?>
Nawiasem mówiąc, element przycisku przesyłania niekoniecznie jest konieczny $form['actions']['submit']. Będziesz musiał dowiedzieć się, który element jest przyciskiem przesyłania w konkretnej sytuacji. Możesz to zrobić, wysyłając zmienną $ form; Polecam instalację modułu Devel i dodanie dsm($form);do powyższej funkcji.
$form['actions']['submit']['#attributes']['class'] = array('form-submitone');, zastąpisz wszystkie ustawione klasy. Jeśli tak $form['actions']['submit']['#attributes'] = array('class' => array('form-submitone'));, zastąpisz nie tylko istniejące klasy, ale wszystkie atrybuty. (PS Zobacz także mój dodatek do powyższej odpowiedzi).
ten kod w zasadzie użytkownik dor dodaje swoją niestandardową klasę w formularzu przycisk Prześlij.
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'))