HTML5 textarea заполнитель не отображается
Я не могу понять, что не так с моей разметкой, но заполнитель для текстовой области не появится. Кажется, что он может быть покрыт некоторыми пробелами и вкладками. Когда вы фокусируетесь на текстовой области и удаляете из нее курсор, а затем покидаете текстовую область, появляется соответствующий заполнитель.
<!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>
7 ответов:
этот всегда был gotcha для меня и многих других. Короче говоря, открытие и закрытие тегов для
<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>
между открывающим и закрывающим тегом в нашем случае тег textarea не должен быть пробел или символ или любой текст(значения).
если есть пробел, символ новой строки или любой текст, он рассматривается как значение, которое переопределяет заполнитель.
**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>
у меня была такая же проблема, только с помощью (аналог
.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
после:
form.form-horizontal(method='POST') .form-group textarea.form-control(placeholder="YOUR MESSAGE") .form-group button.btn.btn-primary(type='submit') SUBMIT