フォーカスした際に、フォームの内容をクリアするやり方

http://hxxk.jp/2006/01/31/2112

記事データ

投稿者

真琴

投稿日時

2006-01-31T21:12+09:00

タグ
概要

フォームのある項目がフォーカスされた際に、その内容を JavaScript でクリアするやり方を紹介。と言ってもソース自体は LIPPiN ( http://acromo.org/lippin/ ) のものをそのまま使わせてもらいましたが。

リプライ

5 件のリプライがあります。

記事本文

フォーム周りのインターフェースをプチ改造しました

現在、 hxxk.jp では検索フォームコメント投稿フォームトラックバック送信フォームトップページのゲストブック投稿フォームなど、多くのフォームをページ内に配置しています。 今日ふと思い立って、それらの文面を入力する部分がフォーカスされた場合に、予め書かれていた文章をクリアするように変更しました。 いただいたコメントにお返事を返す際に、 コメント本文は必須となっています。 という文章を手動で消すのがどうにも煩わしい、でも最初からテキストエリア内を空白にしたくはないということで、毎回手動で消していましたが、今回の変更で解決。

ちなみに、 JavaScript を用いて実現していますので、 JavaScript を無効にしている、あるいは無効になる環境ではフォーカスしてもクリアされません。 ソース自体は LIPPiN のコメントフォーム周りを無断で参考にさせていただきました。 というか身近な ( と私は勝手に思っている ) サイトで実践されていたのに、それに気付いていなかったということが不覚すぎます。

input 要素でのクリアのやり方

まず、 type="text" である input 要素でのやり方。 ( ちなみに、 type 属性を指定しない場合の規定値は text であるので、お使いのフォームの input 要素内に type 属性が見当たらない場合もこれに該当します。 ) 名前やメールアドレスを入力する欄など、一行の入力欄に用いるやり方です。

<input type="text" onfocus="if (this.value == '初期入力値') this.value = '';" onblur="if (this.value == '') this.value = '初期入力値';" value="初期入力値" />

input 要素をこのように記述することで、フォーカス時にクリアされるようになります。 気を付けなければいけないのは、 初期入力値 をきちんと統一する点です。

textarea 要素でのクリアのやり方

次に、 textarea 要素でのやり方。 コメントの本文など、複数行に渡る入力欄に用いるやり方です。

<textarea rows="表示行数を示す数字" cols="表示幅を示す数字" onfocus="if (this.value == '初期入力値') this.value = '';" onblur="if (this.value == '') this.value = '初期入力値';">初期入力値</textarea>

textarea 要素をこのように記述することで、フォーカス時にクリアされるようになります。 気を付けなければいけないのは、 初期入力値 をきちんと統一する点に加え、必須属性である rows 属性と cols 属性を忘れずに指定するという点です。

謝辞

参考に……というかほとんどコピー & ペーストさせていただきました。> lego さん ( LIPPiN ) このお礼はいずれ何らかの形で。 と言ってもどういった形で行うか全く考えていませんが !

もしくはうーたん ( Bazooka ) に代わりに奉仕してもらうとか。 ( いやこの場合うーたん関係ないし ( それと起こしてくれてありがとね ! >うーたん ( 微妙に意味深 ( 実態は何てことはないことです ) ) ) )

リプライ

5 件のリプライが送られています。

2006-02-01T09:45+09:00 - うーたん

深夜までmugiの時はPCの前で寝てる可能性高し…! 僕もコメント消えるようにしよっと。

2006-02-08T00:06+09:00 - 真琴

その節はお世話になりました……って、こうしている今日も mugi なわけですが ( 謎 )

2006-04-14T22:13+09:00 - フォーカスした際にフォームの内容をクリアする JavaScript < Code-404

フォームの入力項目にフォーカスした際に、その項目がデフォルトのままなら消去し、フォーカスが外れた際に、その項目が空欄ならデフォルト値に戻す働きをする Ja...

2006-07-13T23:16+09:00 - フォーカスでフォーム内容をクリア < DesignSpeciesElement

JavaScriptで制御する方法がこちらのサイトで紹介されています。 →フォー...

2009-01-21T18:48+09:00 - フォームの初期文章を自動的にクリアするようにしてみた。 < 煤式自動連結器

当サイトをAnother HTML-lintでチェックすると、 <INPUT type="text"> や <TEXTAREA> ...

この記事に対するご意見やご質問、ご感想などありましたらこのフォームに簡潔に記入して下さい。 簡潔に記入できない場合や、関連記事にてご意見をお寄せいただく場合は、ご自身の weblog にて記事を書かれた上で あてにトラックバックとして送信してください。

記入フォーム

補足情報

著作、講演、制作実績など