私は自分のサイトにユーザーがログインする部分を持っていますが、テキストボックスにデフォルト値を設定したいと思いますが、 "をクリックすると、文字を非表示にします。このIMOの素晴らしい例は、Appleのwww.me.comのWebサイトにあります。実装にはどのような助けがありますか?Javascript:クリック時にテキストボックス 'タイプ'を変更する
答えて
一つの方法は、その後、ユーザーがコントロールに入った...それのデフォルト値を持つコントロールを表示することで、それを隠し、その時点で実際のパスワードコントロールを表示します。ユーザーがパスワードコントロールを離れたときに、実際に値を入力しなかった場合、または既存の値を削除した場合は、最初のコントロールを再度表示してパスワードコントロールを非表示にします。ここでは例のコードは次のとおりです。
<html>
<head>
<script language="ecmascript">
function HandlePasswordOnFocus() {
if ("none" != TheForm.a.style.display) {
TheForm.a.style.display = "none";
TheForm.b.style.display = "block";
TheForm.b.focus();
}
}
function HandlePasswordOnBlur() {
if ("" === TheForm.b.value) {
TheForm.b.style.display = "none"
TheForm.a.style.display = "block";
}
}
</script>
</head>
<body>
<form name="TheForm">
<input id="a" value="password" onfocus="HandlePasswordOnFocus()" />
<input id="b" type="password" style="display: none" onblur="HandlePasswordOnBlur()" />
</form>
</body>
</html>
タイプを変更するという考えは、のほとんどのブラウザではとなります。しかし、古いバージョンのIEでは、入力制御のタイプを動的に変更することができないため、プロセス内の情報を失う可能性のある複雑なノード置換が行われます。むしろ、新しいHTML5 placeholder
プロパティを使用する必要があります。このプロパティはすべてのブラウザでは機能しませんが、この置換を実行するために必要なスクリプトよりもはるかに明白です。
<input type="password" name="pwd" value="" placeholder="Enter your password." />
これはFirefox 3.7以上、Chrome、Safari 4以上、IE9以上と互換性があります。
型を変更したい場合は、ユーザーがテキストボックスをクリックしたときにjavascript関数を使用して型を変更することができます。
<script type="text/javascript">
function changeType() {
document.getElementById("password").type = "password";
document.getElementById("password").value = "";
}
</script>
<input type="text" id="password" name="password" value="Password" onClick="changeType()" />
しかし、他のポスターが示唆しているように - プレースホルダプロパティの使用を検討してください。
IEで悲惨に失敗します(スクリプトの残りの部分が壊れてしまう)ので、警告してください... – Ryan
<label for="placeholder">Password:</label>
<input type="text" id="placeholder" value="Enter password here" onFocus="setPass();"/>
<input type="password" id="password" value="" onBlur="checkPass();" style="display: none;"/>
JS:これを行うには
function setPass() {
document.getElementById('placeholder').style.display = 'none';
document.getElementById('password').style.display = 'inline';
document.getElementById('password').focus();
}
function checkPass() {
if (document.getElementById('password').value.length == 0) {
document.getElementById('placeholder').style.display = 'inline';
document.getElementById('password').style.display = 'none';
}
}
AppleはMe.comでそれをやっている方法は、彼らが透明になるように、入力フィールドを設定し、彼らが表示するテキストとその背後にDIVを持っています。誰かがフィールドに入力を開始すると、その背後にあるラベルdivを非表示にします。
placeholder=""
を使用したくないという人もいます(私は、Safariがサポートして以来、アップルがそれをしていない理由を知りませんでした)、別の方法として、そのフィールドの背景とプレースホルダテキストを入力してから、誰かが入力を開始するときにCSSプロパティbackground:none
を持つクラスを与えます。それは、余分なマークアップを必要としませんでした(ただし、Photoshopではもっとびっくりします...)。
- 1. クリック時のテキストボックスの自動サイズ変更
- 2. 変更時にテキストボックスを更新するJavascript
- 3. クリック(Javascript)時にボタンの色を変更するには?
- 4. Javascript:クリック時にテーブル内の文字列を変更する
- 5. JavaScript:クリック時に背景色を変更する(トグルクラス)
- 6. テキストボックスの値を変更するJavaScript
- 7. ハイチャート - クリック時にカラムスタッキングを変更する
- 8. ブラウザのタイプに応じてテキストボックスのサイズを変更します
- 9. 変更入力タイプ時間
- 10. クリック時のブロックスタイルを変更する
- 11. Django - クリック時のorder_byを変更する
- 12. JavaScriptイベント(クリック)、各クリック時
- 13. クリック時にテキストを変更して変更し続ける
- 14. ボタンをクリックすると、右のテキストボックスの値を変更
- 15. 実行時に変数タイプを変更する方法
- 16. クリックした内容に応じてテキストボックスを変更します
- 17. angularJsのクリック時にCSSクラスを変更
- 18. 保存時にWPF/MVVMがテキストボックスの変更を検出する
- 19. asp.net javascript - ドロップダウンメニューの変更時にラベルテキストを変更する
- 20. クリック時のナビゲーションドロワーメニューの変更
- 21. クリック時に液体変数を変更する
- 22. 角度jsテキストボックスの値は、ドロップダウン時に変更する
- 23. クリック時にテキストをテキストボックスに設定する
- 24. 品質検査テキストボックスのサイズを変更するためのJavascript
- 25. クリック時に表の背景色を変更するには
- 26. iPhoneモバイルウェブのクリック(タップ)時にdivクラスを変更するには
- 27. HTML選択メニュー - 変更時にJavascript変数を変更
- 28. クリック時のwpfテキストボックスのテキストを選択
- 29. ボタンのクリック時のJavaScript変数の値
- 30. チックチェックボックスでテキストボックスを更新するJavascript
優れています。それはうまくいくはずですが、HTML5以外のブラウザではどうなりますか? – Zakman411
@ Zakman411:プレースホルダテキストは表示されません。何も壊れません。それは優雅に劣化する。 – Ryan