https://edit.yahoo.co.jp/config/eval_register?.s …
↑
ヤフーIDの登録フォームでは
テキストフィールドをクリックすると
その下に項目ごとにメッセージ(ヘルプ)が表示されます。
別のテキストフィールドをクリックしたり、
他の場所をクリックすると、メッセージは非表示になります。
メッセージが出てくるとき、
パッと出るのではなく、アニメーションのように表示されます。
これと全く同じことをしたいのですが、
JavaScriptなどを利用しているのでしょうか?
実現方法をご存知の方、教えていただけますと幸いです。
どうぞよろしくお願いいたします。
No.1
- 回答日時:
JavaScriptでテキストフィールドのonFocusとonBlurのイベントを拾えば可能です。
ちなみに
・onFocus:フォーカスがあたった時
・onBlur:フォーカスが離れた時
です。
下記のようなサンプルを作ってみました。
実務から離れてしばらく経つのでソースはアレかもしれませんが。。
--↓↓↓ここから----------------------------------------
<html>
<head>
<title>test</title>
<script language="JavaScript">
function fncMsgView()
{
var str = "メッセージです。"
document.getElementById("msg").style.display = "block";
document.getElementById("msg").innerHTML = str;
}
function fncMsgNoView()
{
document.getElementById("msg").style.display = "none";
}
</script>
</head>
<body>
<input type="text" name="hoge" onFocus="javascript:fncMsgView()" onBlur="javascript:fncMsgNoView()">
<div id="msg"></div>
<br>
ああああああああああああああ<br>
いいいいいいいいいいいいいい<br>
うううううううううううううう<br>
</body>
</html>
--↑↑↑ここまで----------------------------------------
テキストフィールドをクリック→メッセージ表示
テキストフィールド以外をクリック→メッセージ非表示
になると思います。
※IE7とFirefox3で確認済みです。
以上、ご参考になれば幸いです。
hyter様
ご回答ありがとうございます!
ソースまでご提供いただいて…
例えば、ヤフーID登録ページのように複数のフィールドに設定したい場合は、
--↓↓↓ここから----------------------------------------
<html>
<head>
<meta http-equiv="Content-Style-Type" content="text/css">
<title>test</title>
<script language="JavaScript">
function fncMsgView()
{
var str = "メッセージです。"
document.getElementById("msg").style.display = "block";
document.getElementById("msg").innerHTML = str;
}
function fncMsgNoView()
{
document.getElementById("msg").style.display = "none";
}
function fncMsgView2()
{
var str = "メッセージです2"
document.getElementById("msg2").style.display = "block";
document.getElementById("msg2").innerHTML = str;
}
function fncMsgNoView2()
{
document.getElementById("msg2").style.display = "none";
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<input type="text" name="hoge" onFocus="javascript:fncMsgView()" onBlur="javascript:fncMsgNoView()">
<div id="msg"></div>
<br>
ああああああああああああああ<br>
いいいいいいいいいいいいいい<br>
うううううううううううううう<br>
<input type="text" name="hoge" onFocus="javascript:fncMsgView2()" onBlur="javascript:fncMsgNoView2()">
<div id="msg2"></div>
<br>
ああああああああああああああ<br>
いいいいいいいいいいいいいい<br>
うううううううううううううう<br>
</body>
</html>
--↑↑↑ここまで----------------------------------------
こういった形で増やしていけばいいのでしょうか?
IE7で動作確認はしたのですが
このまま進めていいものかわからなくて…
(JSの知識がほとんどないため)
恐れ入りますが教えていただけると幸いです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
javascriptの関数に引数を渡して処理する方がスマートに行けます。
◆サンプル2--↓↓↓ここから----------------------------------------
<html>
<head>
<meta http-equiv="Content-Style-Type" content="text/css">
<title>test</title>
<script language="javascript">
function fncMsgView(id)
{
document.getElementById(id).style.display = "block";
}
function fncMsgNoView(id)
{
document.getElementById(id).style.display = "none";
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body onLoad=>
<input type="text" name="hoge" onFocus="javascript:fncMsgView('msg')" onBlur="javascript:fncMsgNoView('msg')">
<div id="msg" style="display:none">メッセージです。</div>
<br>
ああああああああああああああ<br>
いいいいいいいいいいいいいい<br>
うううううううううううううう<br>
<input type="text" name="hoge2" onFocus="javascript:fncMsgView('msg2')" onBlur="javascript:fncMsgNoView('msg2')">
<div id="msg2" style="display:none">メッセージ2です。</div>
<br>
ああああああああああああああ<br>
いいいいいいいいいいいいいい<br>
うううううううううううううう<br>
</body>
</html>
◆サンプル2--↑↑↑ここまで----------------------------------------
これは各関数(fncMsgView, fncMsgNoView)に引数"id"を渡して、
そのIDを持つ「div」を表示したり隠したりするようになっています。
※前のサンプルだとjavascriptの関数の中でメッセージを入れていましたが、
表示するメッセージが固定なので、意味がないと思い
あらかじめHTML内に記述しています。
最初の画面表示時には[style="display:none"]にて非表示としています。
ほかにもっと良い方法があるかもしれませんが、、
以上、ご参考になれば幸いです。
hyter様
ソースサンプル、ありがとうございますm(__)m
非常に勉強になりました。
上のソースを参考にして使わせていただきます。
hyter様本当にありがとうございましたm(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Yahoo!メール Yahooアカウントにログインできなくなって困っています。 2 2023/05/16 02:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
(Javascript)印刷するファイル...
-
【HTML】フレームの中央寄せに...
-
iframeのsrcにページ内リンク(...
-
テキストボックス内にハイパー...
-
テキストをクリックすると答え...
-
googleマイマップとのリンクを...
-
htmlで任意の行の文字位置を右...
-
divやiframeの読み込み時バグ @...
-
bodyにwidth:100%をつける理由は?
-
<NOSCRIPT>
-
wordpressでアコーディオンメニ...
-
スクロールバーのスクロール量...
-
<a href="#" …>の意味を教えて...
-
別ファイルのfunctionの読み込み方
-
複数のJavascriptを1つのscrip...
-
base64encodeでの文字化けについて
-
入力したテキストボックスのデ...
-
ウインドウの後ろに隠れている...
-
JavaScriptでiframeの内容を「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
テキストボックス内にハイパー...
-
(Javascript)印刷するファイル...
-
ハイパーリンクに下線を表示す...
-
別ページのページ内リンクでの...
-
横スクロールを右から左へ・・・
-
bodyにwidth:100%をつける理由は?
-
ボタンが押されたらWebページの...
-
テーブル内の数値を自動で計算...
-
"mailtoでメールの【氏名】【性...
-
ページの読み込みが完了してか...
-
テキストをクリックすると答え...
-
インラインフレーム内のスクロ...
-
<body id=~>の用途は?
-
複数のiframeの読み込みについて
-
Chromeがiframe内の「#~」に釣...
-
-css- ページオープン時やリロ...
-
ページによって表示位置がずれ...
-
<HR>タグでつくる四角形につい...
-
リンクをクリックすると文字が...
おすすめ情報