入力フィールドに空白のデフォルトテキストを設定し、要素がアクティブなときにクリアする方法。
最新のブラウザでは、フィールドにplaceholder
属性を設定して、デフォルトのテキストを設定できます。
<input type="text" placeholder="Type some text" id="myField" />
ただし、古いブラウザでは、JavaScriptを使用してフォーカスイベントとブラーイベントをキャプチャできます。
var addEvent = function(elem, type, fn) { // Simple utility for cross-browser event handling
if (elem.addEventListener) elem.addEventListener(type, fn, false);
else if (elem.attachEvent) elem.attachEvent('on' + type, fn);
},
textField = document.getElementById('myField'),
placeholder = 'Type some text'; // The placeholder text
addEvent(textField, 'focus', function() {
if (this.value === placeholder) this.value = '';
});
addEvent(textField, 'blur', function() {
if (this.value === '') this.value = placeholder;
});
onFocus
およびonBlur
イベントを使用すると、これを実現できます。つまり:
onfocus="if(this.value=='EGTEXT')this.value=''"
そして
onblur="if(this.value=='')this.value='EGTEXT'"
完全な例は次のとおりです。
<input name="example" type="text" id="example" size="50" value="EGTEXT" onfocus="if(this.value=='EGTEXT')this.value=''" onblur="if(this.value=='')this.value='EGTEXT'" />
非アクティブおよびアクティブ状態のスタイルを宣言します。
_.active {
color: black;
}
.inactive {
color: #909090;
}
_
状態の変化を処理するJavascriptを追加します。
_function toggleText(el)
{
var v = el.value;
//Remove text to allow editing
if(v=="Default text") {
el.value = "";
el.className = "active";
}
else {
//Remove whitespace
if(v.indexOf(" ")!=-1) {
split = v.split(" ").join("");
v = split;
}
//Change to inactive state
if(v=="") {
el.value = "Default text";
el.className = "inactive";
}
}
}
_
デフォルト値セット、inactive
クラスセット、およびtoggleText()
関数を指すJavascriptハンドラーを使用して入力ボックスを追加します(これを行うには event listeners を使用できます)ご希望の場合)
_<input type="text" value="Default text" class="inactive" onFocus="toggleText(this);" onBlur="toggleText(this);">
_
または単に
<input name="example" type="text" id="example" value="Something" onfocus="value=''" />
これは、ボックスがクリアされるとデフォルトのテキストをポストバックしませんが、ユーザーがボックスをクリアして、オートコンプリートスクリプトの場合にすべての結果を確認できるようにします。
使いやすさの観点から、入力コンポーネントのテキストは、ユーザーの入力目的でのみ保持する必要があります。ユーザーが触れない場合、入力のデフォルト値は有効である必要があります。
プレースホルダーテキストが入力を埋める方法のヒントとなる場合は、入力がいっぱいになったときにも表示できる入力の近くに配置することをお勧めします。さらに、テキストコンポーネント内でプレースホルダーテキストを使用すると、トラブルが発生する可能性があります。点字デバイスを使用します。
プレースホルダーテキストを使用する場合は、ユーザビリティガイドラインに関係なく、JavaScriptを使用せずに、またはjsがオフになっているときにユーザーエージェントで動作するように、目立たない方法で行う必要があります。
JQueryプラグインを見つけました( http://www.jason-palmer.com/2008/08/jquery-plugin-form-field-default-value/ )そしてそれを使用します:)
私がやったことは、最新のブラウザにプレースホルダー属性を設定することです:
<input id='search' placeholder='Search' />
次に、JQueryを使用して古いブラウザーのフォールバックを作成しました。
var placeholder = $('search').attr('placeholder');
//Set the value
$('search').val(placeholder);
//On focus (when user clicks into the input)
$('search').focus(function() {
if ($(this).val() == placeholder)
$(this).val('');
});
//If they focus out of the box (tab or click out)
$('search').blur(function() {
if ($(this).val() == '')
$(this).val(placeholder);
});
これは私のために働く。
このプラグインを使用できます(私は共著者です)
https://github.com/tanin47/jquery.default_text
入力フィールドを複製し、そこに配置します。
IE、Firefox、Chrome、さらに有名なフォーカスの問題があるiPhone Safariでも動作します。
このように、送信する前に入力フィールドをクリアすることを心配する必要はありません。
OR
HTML5のみにしたい場合は、入力フィールドで属性「プレースホルダー」を使用できます
プレースホルダー属性を使用できます。
np。 <input type="text" name="fname" placeholder="First name">
check http://www.w3schools.com/tags/att_input_placeholder.asp