<input type="submit" class="form-submit" value="" name="op" id="edit-submit">
Tôi muốn thay đổi lớp từ "form-submit" thành "form-submitone".
Làm thế nào tôi có thể làm điều đó? Trường hợp "lớp nộp mẫu" đến từ đâu?
<input type="submit" class="form-submit" value="" name="op" id="edit-submit">
Tôi muốn thay đổi lớp từ "form-submit" thành "form-submitone".
Làm thế nào tôi có thể làm điều đó? Trường hợp "lớp nộp mẫu" đến từ đâu?
Câu trả lời:
Nếu tôi là bạn, tôi sẽ không thay đổi tên lớp mà chỉ thêm lớp của riêng bạn vào thành phần biểu mẫu. Bạn có thể làm điều này bằng cách triển khai hook_form_alter trong một mô-đun tùy chỉnh hoặc (trong trường hợp Drupal 7) trong chủ đề của bạn. Mã sẽ trông giống như thế này:
<?php
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id = 'my_form') {
$form['actions']['submit']['#attributes']['class'][] = 'form-submitone';
}
}
?>
Nhân tiện, yếu tố nút gửi không nhất thiết phải $form['actions']['submit']
. Bạn sẽ phải tìm ra yếu tố nào là nút gửi trong tình huống cụ thể của bạn. Bạn có thể làm điều đó bằng cách xuất ra biến $ form; Tôi khuyên bạn nên cài đặt mô-đun Devel và thêm dsm($form);
vào chức năng trên.
$form['actions']['submit']['#attributes']['class'] = array('form-submitone');
, bạn sẽ ghi đè tất cả các lớp đã được đặt. Nếu bạn sẽ làm $form['actions']['submit']['#attributes'] = array('class' => array('form-submitone'));
, bạn sẽ ghi đè lên không chỉ các lớp hiện có, mà tất cả các thuộc tính. (PS Xem thêm phần bổ sung của tôi vào câu trả lời ở trên.)
mã này về cơ bản người dùng dor thêm lớp tùy chỉnh của bạn vào nút gửi biểu mẫu.
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'))