2012-03-05 5 views
1

Я пытаюсь удалить атрибут «размер» из вывода FileField от Drupal. Прямо сейчас, это выводит тег так:Создание выходного файла FilePield для Drupal HTML5-совместимого

<input type="file" name="files[image]" class="form-file" id="edit-image" size="40" /> 

Я пытался несколько перестановок с помощью unset() в #pre_render обратного вызова в моем пользовательском модуле, но я просто ветер с размером = «». Сам атрибут никогда не исчезает, поэтому валидаторы HTML5 продолжают жаловаться. Есть ли другой способ сделать это, или способ действительно гарантировать, что ваш обратный вызов работает последним? $form['mystuff'][] = 'mycallback' не делает трюк, а простой старый unset($form['mystuff']['#size']) работает слишком поздно.

ответ

1

Вы попробовали hook_form_alter()?

function YOUR_THEME_form_alter(&$form, &$form_state, $form_id) { 
    if ($form_id == 'YOUR_FORM_ID') { // Selects the form you want   
    $form['YOUR_FIELD_NAME']['#size'] = NULL; 
    } 
} 

С этим я был в состоянии удалить размер и добавить HTML5 биты, как заполнители и т.д.:

$form['name']['#attributes'] = array('placeholder' => t('username')); 
+0

Очевидно изменить доктайп в HTML тоже. – SpaceBeers

+0

Я тоже так пробовал. Что-то продолжает помещать атрибут назад, и я заканчиваю size = "". –

 Смежные вопросы

  • Нет связанных вопросов^_^