2012-03-22 15 views
16

我需要爲Drupal 7中的水平登錄表單設置一個佔位符。單擊此文本時需要消失。他們只會說'用戶名'和'密碼'。以下是表格中的代碼。謝謝!如何在登錄表單中設置drupal 7中的佔位符

function horizontal_login_block($form) { 
$form['#action'] = url($_GET['q'], array('query' => drupal_get_destination())); 
$form['#id'] = 'horizontal-login-block'; 
$form['#validate'] = user_login_default_validators(); 
$form['#submit'][] = 'user_login_submit'; 
$form['#prefix'] = '<div id="loginbar">'; 
$form['#suffix'] = '</div>'; 
$form['name'] = array(
'#type' => 'textfield', 
'#prefix' => '<div class="usericon">', 
'#suffix' => '</div>', 
'#maxlength' => USERNAME_MAX_LENGTH, 
'#default_value' => t('Username'), 
'#id' => 'userbar', 
'#size' => 15, 
'#required' => TRUE, 
); 

回答

24

這是如何在HTML5中使用佔位符HTML屬性來實現的。但是,它不適用於任何Internet Explorer版本。

function horizontal_login_block($form) { 
    $form['#action'] = url($_GET['q'], array('query' => drupal_get_destination())); 
    $form['#id'] = 'horizontal-login-block'; 
    $form['#validate'] = user_login_default_validators(); 
    $form['#submit'][] = 'user_login_submit'; 
    $form['#prefix'] = '<div id="loginbar">'; 
    $form['#suffix'] = '</div>'; 
    $form['name'] = array(
    '#type' => 'textfield', 
    '#prefix' => '<div class="usericon">', 
    '#suffix' => '</div>', 
    '#maxlength' => USERNAME_MAX_LENGTH, 
/* Don't set default values. HTML5 
    '#default_value' => t('Username'), */ 
    '#id' => 'userbar', 
    '#size' => 15, 
    '#required' => TRUE, 
    '#attributes' =>array('placeholder' => t('Username')) 
    ); 
+0

謝謝!任何想法修復IE瀏覽器? – Zach 2012-03-23 20:56:06

+3

對於較老的瀏覽器可能http://drupal.org/project/jquery_placeholder可能有用。 – Vacilando 2012-11-10 19:37:02

+0

仍然可以在Drupal 8中使用:) – 2016-04-19 09:49:50

22

另一種簡單的方法是給這個函數添加到您的主題的template.php

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) 
{ 
    if (in_array($form_id, array('user_login', 'user_login_block'))) 
    { 
     $form['name']['#attributes']['placeholder'] = t('Username'); 
     $form['pass']['#attributes']['placeholder'] = t('Password'); 
    } 
} 

這將HTML5佔位符添加到兩登錄表單的用戶名密碼UND領域。

不要忘記改變功能名稱的開頭!

玩得開心!

+0

併爲搜索添加一個佔位符,在該函數中添加以下內容:if($ form_id =='search_block_form'){$ form ['search_block_form'] ['#attributes'] ['' placeholder'] = t('Search ...'); } – timofey 2012-09-21 03:13:52

+4

此代碼隱藏標籤'$ form ['name'] ['#title_display'] =「不可見」的改進; $ form ['pass'] ['#title_display'] =「不可見」;' – Capy 2013-02-12 09:19:43

+1

進一步改進:不是明確地寫佔位符文本,而是重新使用標籤:'$ form ['name'] ['#attributes' ] ['placeholder'] = $ form ['name'] ['#title'];''form ['pass'] ['#attributes'] ['placeholder'] = $ form ['pass'] [ '#title'];' – 2016-02-21 18:33:31

相關問題