2012-03-05 10 views
1

DrupalのFileField出力から「サイズ」属性を削除しようとしています。今、それはこのようにタグを出力しますDrupalのFileField出力HTML5準拠

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

私は私のカスタムモジュールで#pre_renderコールバックでunset()を使用しての順列の数を試してみましたが、私はちょうどサイズ=「」と羽目になる。アトリビュート自体は決して消えないので、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にあなたのDOCTYPEを変更します。 – SpaceBeers

+0

そのようにもやってみました。何かが後で属性を残し続け、私はsize = ""で終わります。 –