のために、あなたはModernizrを介さずに直接に物事を行うことができます。
<input type="text" placeholder="type your email address"
id="email">
<script>
var email = document.getElementById('email');
if(!('placeholder' in email)) {
email.value = email.getAttribute('placeholder');
email.onfocus = function() { this.value = ''; };
}
</script>
このアプローチでは、placeholder
属性は、静的なHTMLマークアップで表示されます。サポートされていない場合でも問題ありません。実際には、サポートされていない場合でも役に立つことがあります。
placeholder
がサポートされている場合、その名前のプロパティが要素ノード用に存在します。サポートされていない場合でも、ブラウザはそれを解析して保存しているので、getAttribute()
で取得し、value
プロパティに値を割り当てて、初期コンテンツとして表示させることができます。
フォーカスを合わせるとコードがフィールドをクリアします。ユーザーがデータの一部を入力した後、いくつかの理由でフィールドをクリックする可能性があるため、このボタンをクリックするたびにクリアするよりも音がよくなります。
P.S.ユーザビリティ、アクセシビリティ、およびシンプルさを考慮して、プレースホルダを使用する代わりに、すべての入力フィールドに目に見えるラベルを使用する方がよいでしょう。だから、これは良いユースケースを好きではありません。しかし、同じ技術を使用することができる。サイトがしばしばサイト全体のナビゲーションシステムの一部として持つ非常に単純な検索フォーム。そこでは、ラベルを省略して、非常に小さいサイズにフォームを絞ることが理にかなっています。
1+これはあなたの問題をテストし、まだ他のもののためにそれを使用していません。より少ない外部ファイルとより速いサイト – atmd
アドバイスをいただきありがとうございますが、プレースホルダは単なる例であり、私はこのリンク[http://miketaylr.com/code/input-type-attr.html]を使用してそれをフォローしています。とにかく、私はあなたが正しいと思う、私はこれらの条件をどこでも使うことができる –