219

マークアップの何が問題なのかわかりませんが、テキスト領域のプレースホルダーが表示されません。空白やタブで覆われているようです。テキスト領域に焦点を合わせ、カーソルが置かれた場所から削除し、テキスト領域を離れると、適切なプレースホルダーが表示されます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html>
    <head>
    </head>

    <body>

    <form action="message.php" method="post" id="message_form">
        <fieldset>

            <input type="email" name="email" id="email" title="Email address"
                maxlength="40"
                placeholder="Email Address" 
                autocomplete="off" required />
            <br />
            <input type="text" 
                name="subject" 
                id="subject" title="Subject"
                maxlength="60" placeholder="Subject" autocomplete="off" required />
            <br />
            <textarea name="message" 
                id="message" 
                title="Message" 
                cols="30" 
                rows="5" 
                maxlength="100" 
                placeholder="Message" required>
            </textarea>
            <br />
            <input type="submit" value="Send" id="submit"/>

        </fieldset>
    </form>
</body>

<script>

$(document).ready(function() {        
    $('#message_form').html5form({
        allBrowsers : true,
        responseDiv : '#response',
        messages: 'en',
        messages: 'es',
        method : 'GET',
        colorOn :'#d2d2d2',
        colorOff :'#000'
    }
);
});

</script>

</html>
4

9 に答える 9

792

これは、私と他の多くの人にとって常に落とし穴でした。つまり、<textarea>要素の開始タグと終了タグは同じ行にある必要があり、そうでない場合は改行文字がそれを占有します。したがって、入力領域にコンテンツが含まれているため、プレースホルダーは表示されません (技術的には、改行文字は有効なコンテンツです)。

良い:

<textarea></textarea>

悪い:

<textarea>
</textarea>

アップデート (2020)

HTML5 解析仕様によると、これはもはや真実ではありません。

If the next token is a U+000A LINE FEED (LF) character token, 
then ignore that token and move on to the next one. (Newlines 
at the start of textarea elements are ignored as an authoring 
convenience.)

ただし、編集者が CRLF で行を終了することを主張している場合は、まだ問題が発生する可能性があります。

于 2012-12-27T00:34:58.943 に答える
56

<textarea>開始タグと終了タグの間のすべてのスペースと改行を削除し</textarea>ます。

<textarea placeholder="YOUR TEXT"></textarea>  ///Correct one

<textarea placeholder="YOUR TEXT"> </textarea>  ///Bad one It's treats as a value so browser won't display the Placeholder value

<textarea placeholder="YOUR TEXT"> 
</textarea>  ///Bad one 
于 2014-04-09T12:17:22.293 に答える
11

どこかに隙間があるからです。私は jsfiddle を使用していましたが、タグの後にスペースがありました。スペースを削除した後、機能し始めました

于 2012-07-05T21:44:25.250 に答える
2

<textarea></textarea>開始タグと終了タグの間にスペースを入れる代わりに使用します。<textarea> </textarea>

于 2015-05-27T14:52:08.633 に答える