2012-02-14 13 views
0

入力タグ内のonfocusとonblurを使って入力テキストをクリアしようとしていましたが、このフィールドを多くのフィールドで使用するので、このJQuery関数が見つかりましたが、動作させることができません。このJQuery関数を入力テキストのクリアに使用するにはどうすればよいですか?

$('.default-value').each(function() { 

    var default_value = this.value; 

    $(this).focus(function(){ 
      if(this.value == default_value) { 
        this.value = ''; 
      } 
    }); 

    $(this).blur(function(){ 
      if(this.value == '') { 
        this.value = default_value; 
      } 
    }); 
}); 

私はheadタグ内でこの内部のスクリプトタグを入れてみました、と私はクリアしたいが、それは動作しません入力にデフォルト値のクラスを追加しました。

私は間違っているのですか?私はJavaScriptを知らないし、最新のJQueryにリンクしている。あなたがここに@placeholderを再発明しているよう

と感謝

+0

あなただけの 'の' – karim79

+1

は、あなたの質問にHTMLコードを含める必要があり、「良い」のブラウザをあなただけ行うことができサポートしている場合。 – Alfabravo

+0

プレースホルダを使用していますが、これは古いブラウザの代わりにこれを使用するつもりです – Pierre

答えて

3

は思えます。

はちょうどこのようにHTMLを使用します。これは、最新のブラウザでサポートされてい

<input type="text" placeholder="foo bar"> 

次に、polyfillを使用して古いブラウザが同様の動作をするようにします。もし興味があるなら、私は、jQueryプラグイン形式で1を書いて次のようにhttp://mths.be/placeholder

は、それを使用します。http://mathiasbynens.be/demo/placeholder

+0

'placeholder'属性はHTML5の機能であることに注意してください。 –

2

私はこれがうまくいくとは思わない:

$('input, textarea').placeholder(); 

をここでデモです閉鎖のため。 各フィールドのデフォルト値を覚えておく必要があります。例:

$('.default-value').each(function() { 

    $(this).attr('default_value',$(this).val()); 

    $(this).focus(function(){ 
     if($(this).val() == $(this).attr('default_value')) { 
       $(this).val(''); 
     } 
    }); 

    $(this).blur(function(){ 
     if($(this).val() == '') { 
       $(this).val($(this).attr('default_value')); 
     } 
    }); 
}); 
関連する問題