0

このコードを使用してプレースホルダーを表示しています:

 <input type="email" name="email" value="Email" onfocus="if(this.value=='Email')this.value='';" onblur="if(this.value=='')this.value='Email';">
<textarea onfocus="if(this.value=='Message')this.value='';" onblur="if(this.value=='')this.value='Message';"> </textarea>

プレースホルダーは入力フィールドに表示されていますが、テキストエリアには表示されていません。

これは、このコードを使用しているページのリンクです。 http://realinvestors.businesscatalyst.com/contact.html

4

6 に答える 6

4

Atextareaの元の値は、開始タグと終了タグの間のテキストに基づいています。テキストエリア マークアップを次のようにすると、機能するはずです。 <textarea onfocus="if(this.value=='Message')this.value='';" onblur="if(this.value=='')this.value='Message';">Message</textarea>

シャドウが指摘したように、HTML5placeholder属性も確認する必要があります。

于 2013-09-11T08:11:18.930 に答える
2

これを試すこともできます。なぜそんなに多くのコードが必要なのですか

<textarea rows="4" cols="50" placeholder="Message here...">
</textarea>
于 2013-09-11T08:12:37.450 に答える
0

これだけを使用してください:

<textarea placeholder="Message"></textarea>

textarea タグの間には何も (空白でも) 入れないでください。それはとても簡単です:)

于 2015-07-09T22:44:20.527 に答える
0

まず、HTML5 はplaceholderfor 属性を完全にサポートしていますinput && textarea

次に、古いバージョンの場合、HTML5 と他の HTML の間を管理する非常に単純なjQuery Plugin Hereがあります。つまり、ブラウザが HTML5 をサポートしている場合、何もしません。HTML マークアップで placeholder 属性を使用するだけで、プラグインに作業を任せることができます。

第三に、そのようなものをどの値に引っ張るか疑問がある場合はor、 などのスイッチを使用してみてくださいvar val = $(this).val() || $(this).text()。必要なものが or の反対側にある場合、これは不適切な結果につながる可能性がありますが、最初の評価が true であることに注意してください。

最後に、そのプラグインが必要ない場合でも、placeholder属性と次の JavaScriptを使用することをお勧めします。

HTML

<textarea id="a" placeholder="text are text?"></textarea>

JS

$(document).on('blur focus', '[placeholder]', function(e) {
    var val = $.trim($(this).val() || $(this).text()),  //  remove use of .trim here if you WANT to ALLOW text are to be a blank space like " "
        placeHolder = $(this).prop('placeholder');

    switch(e.type) {
        case 'focusin':
            if (val == placeHolder) $(this).val('').text('');
            break;
        case 'focusout':
            if (val == '') $(this).val(placeHolder).text(placeHolder);
            break;
    }
});

//    the following will make sure all fields having placeholder will start with placeholder in place
$('[placeholder]').each(function(i) { $(this).text($(this).prop('placeholder')); });

ここで作業例を参照してください



一部の古いバージョンの IE では機能しない と思わ$(this).val() || $(this).text()れるため、実際に区別する必要がある場合があり、より長い if ステートメントを記述します。私は単にここで最短の答えを示そうとしました. 古いブラウザーとのクロスブラウザー互換性がさらに必要な場合は、このすべての作業を既に行っているプラ​​グインをお勧めします

于 2013-09-19T13:13:33.697 に答える