マークアップの何が問題なのかわかりませんが、テキスト領域のプレースホルダーは表示されません。いくつかの空白スペースとタブで覆われているように見えます。テキスト領域に焦点を合わせ、カーソルが置かれている場所から削除し、テキスト領域を離れると、適切なプレースホルダーが表示されます。
<!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>
これは、私と他の多くの人にとって常に落とし穴です。つまり、<textarea>
要素の開始タグと終了タグは同じ行にある必要があります。そうでない場合、改行文字がそれを占有します。したがって、入力領域にはコンテンツが含まれるため、プレースホルダーは表示されません(改行文字は技術的には有効なコンテンツです)。
良い:
<textarea></textarea>
悪い:
<textarea>
</textarea>
<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
それはどこかにスペースがあるからです。 jsfiddleを使用していて、タグの後にスペースがありました。スペースを削除した後、機能し始めました
技術的には、開始タグの終了 ">"と終了タグの開始 "<"の間に文字がない限り、同じ行にある必要はありません。それは、次の例のように...></textarea>
で終わる必要があるということです。
<p><label>Comments:<br>
<textarea id = "comments" rows = "4" cols = "36"
placeholder = "Enter comments here"
class = "valid"></textarea>
</label>
</p>
開始タグと終了タグの間にスペースを<textarea></textarea>
として残す代わりに、<textarea> </textarea>
を使用します
私はこの投稿がAquarelleによって(非常によく)回答されていることを知っていますが、誰かが入力などのテキストのない他のタグフォームでこの問題を抱えている場合に備えて、ここに残します:
フォームに入力があり、先頭に空白があるためプレースホルダーが表示されない場合、これは「値」属性に起因している可能性があります。変数を使用して入力チェックの値を埋める場合は、コンマと変数の間に空白がないことを確認してください。
pHPフレームワークsymfonyにtwigを使用した例:
<input type="text" name="subject" value="{{ subject }}" placeholder="hello" /> <-- this is ok
<input type="text" name="subject" value" {{ subject }} " placeholder="hello" /> <-- this will not show placeholder
この場合、{{}}の間のタグは変数です。空白も有効な文字であるため、カンマの間にスペースを入れないようにしてください。
この場合の開始タグと終了タグの間は、textareaタグがスペースまたは改行文字または任意のtext(value)であってはなりません。
スペース、改行文字、またはテキストがある場合、プレースホルダーをオーバーライドする値と見なされます。
**PlaceHolder Appears**
<textarea placeholder="Am Default Message"></textarea>
**PlaceHolder Doesn't Appear**
<textarea placeholder="Am Default Message"> </textarea>
<textarea placeholder="Am Default Message">
</textarea>
<textarea placeholder="Am Default Message">Something</textarea>
.pug
ファイル(.jade
に類似)のみを使用して、同じ問題が発生しました。私は、これがスペースの問題であり、閉じ括弧の終わりに続いていることに気付きました。私の例では、(placeholder="YOUR MESSAGE")
の後のテキストを強調表示する必要があります。
前:
form.form-horizontal(method='POST')
.form-group
textarea.form-control(placeholder="YOUR MESSAGE")
.form-group
button.btn.btn-primary(type='submit') SUBMIT
AFTER:
form.form-horizontal(method='POST')
.form-group
textarea.form-control(placeholder="YOUR MESSAGE")
.form-group
button.btn.btn-primary(type='submit') SUBMIT