Twitterの登録フォームのように機能させたい入力フィールドを作成しようとしています。
- フォーカスを合わせると、値のテキストが薄い灰色になります。
- 入力を開始すると、薄い灰色のデフォルト値が完全に消え、ユーザーが書いたテキストは#000000になります。
- 何も書かずにピントが合わなくなると、デフォルトのテキストが再び表示されます。
jQueryで達成する方法は?
これはこれを行うサンプルの方法であり、入力の値をあなたが言いたいものに設定し、近くにラベルを付けて (非表示にすることはできますが、DOM に入れます)、その値を取得して追加できるようにします。 /それを除く。
// clear input on focus
$('input.myclass').focus(function() {
var inputlabel = $(this).attr('label');
if($(this).val() == inputlabel) { $(this).val('').removeClass('inactive'); }
});
// restore text on blur if blank
$('input.myclass').blur(function() {
var inputlabel = $(this).attr('label');
if($(this).val() == '') { $(this).val(inputlabel).addClass('inactive'); }
});
入力でHTML5placeholder
を使用することもできます ex <input placeholder='Your name' type='text' />
。デフォルトでは、フォーカスのあるテキストがクリアされますが、すべてのブラウザーで期待どおりに機能しません。
このサンプルを見てください。