テキストボックスにあらかじめうっすら文字を入れておく

テキストボックスにあらかじめ薄い文字を入れておく

テキストボックスにうっすらテキストが入力されているあれです。

HTML5の場合

placeholder属性でうっすらテキストを指定するだけです。

<form action="#" method="post">
<input name="name" type="text" value="" placeholder="名前を入力してください" />
<input type="submit" value="送信" />
</form>


とてもカンタンなのですが、IEはまだ対応してないですね。。
HTML5 & CSS3 Support


jQueryを使う場合
<!--jQueryとプラグインのjsを読み込み -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script>
<script src="http://jquery-formtips.googlecode.com/files/jquery.formtips.1.2.5.js" type="text/javascript"></script>


<!--うっすらテキストを表示するjsコード -->
<script type="text/javascript">
$(document).ready(function() {
    $('form input.help, form textarea.help').formtips({
        tippedClass: 'tipped'
    });
});
</script>


<!--うっすらテキストの色を指定 -->
<style type="text/css" media="screen">
.tipped {
    color: #BBB;
}
</style>

<form action="#" method="post">
<!--classにhelp、titleにうっすらテキストを指定 -->
<input name="name" type="text" value="" class="help" title="名前を入力してください" />
<input type="submit" value="送信" />
</form>
jQueryを使う場合の注意点

jQueryを使う場合、フォームに入力しないで送信すると、
うっすらテキストがそのまま送信されてしまうようです。


対策として、下記のようなスクリプトで
送信するときに、valueとtitleの値が同じ場合はvalueの値をクリアするようにしました。
ん〜、他によい方法があれば教えてください。

<form action="#" method="post">
<!--classにhelp、titleにうっすらテキストを指定 -->
<input name="name" type="text" value="" class="help" title="名前を入力してください" />
<input type="button" value="送信" onclick="send(this)"/>
</form>

<script>
function send(btn)
{
    if($('input[name="name"]').attr('value') == $('input[name="name"]').attr('title'))
    {
       $('input[name="name"]').attr('value', '') == "";
    }
    btn.form.submit();//送信
}
</script>