web-dev-qa-db-ja.com

ログインフォームの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,
);
16
Zach

これは、プレースホルダーHTML属性を使用してHTML5でそれを行う方法です。ただし、InternetExplorerのどのバージョンでも機能しません。

    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'))
    );
24
Ayesh K

もう1つの簡単な方法は、この関数をテーマに追加することです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プレースホルダーが追加されます。

関数名の先頭を変更することを忘れないでください!

楽しんで!

22
Raisch

このモジュールの使用を検討してください https://www.drupal.org/project/form_placeholder HTML 5プレースホルダーを実装し、古いブラウザーの場合、「HTML5プレースホルダー属性をサポートしない古いブラウザーはMathiasBynensによるjQueryプレースホルダープラグインを使用します」。

1
user2486435