Я не могу понять, что не так с моей разметкой, но заполнитель для текстовой области не появится. Кажется, что он может быть покрыт пробелами и вкладками. Когда вы фокусируете внимание на текстовой области и удаляете ее с того места, где находится курсор, а затем покидаете текстовую область, появляется соответствующий заполнитель.
<!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>
элемента должны находиться на одной строке, в противном случае символ новой строки занимает его. Поэтому заполнитель не будет отображаться, так как область ввода содержит контент (символ новой строки, технически, является допустимым контентом).Хорошо:
Плохой:
Обновление (2020)
Это больше не так , согласно спецификации синтаксического анализа HTML5:
Однако у вас могут возникнуть проблемы, если ваш редактор настаивает на окончании строк с помощью CRLF.
источник
.trim
метод jQuery .$('textarea'),each(function(i) { if ($.trim($(this).text()) == '') $(this).text('').trigger('blur'); });
/>
вместо>
. Пример:$('body').html('<textarea placeholder="test" />');
<textarea>
это означает, что текстовая область не пуста, поэтому заполнитель не нужен. :)Удалите все пробелы и разрывы строк между
<textarea>
открывающими и закрывающими</textarea>
тегами.источник
это потому, что где-то есть место. Я использовал jsfiddle и после тега было место. После того, как я удалил пространство, он начал работать
источник
Ну, технически это не обязательно должно быть в одной строке, если нет символа между конечным «>» из начального тега и начальным «<» из закрывающего тега. На этом вам нужно закончить
...></textarea>
как в примере ниже:источник
Я знаю, что на этот пост (очень хорошо) ответил Aquarelle, но на тот случай, если у кого-то возникнут проблемы с другими формами тегов без текста, такими как входные данные, я оставлю это здесь:
Если в вашей форме есть входные данные, а заполнитель не отображается из-за пробела в начале, это может быть связано с атрибутом «значение». В случае, если вы используете переменные для заполнения значения ввода, убедитесь, что между запятыми и переменными нет пробелов.
пример использования ветки для php фреймворка symfony:
В этом случае тег между {{}} является переменной, просто убедитесь, что вы не оставляете пробелы между запятыми, потому что пробел также является допустимым символом.
источник
используйте
<textarea></textarea>
вместо того, чтобы оставить пробел между открывающим и закрывающим тегами как<textarea> </textarea>
источник
Между открывающим и закрывающим тегом в нашем случае TEXTAREA тега не должно быть пространство или символ новой строки или любой текст (значение).
Если есть пробел, символ новой строки или любой текст, он считается значением, которое переопределяет заполнитель.
источник
У меня была такая же проблема, только с использованием
.pug
файла (аналогично.jade
). Я понял, что это была также проблема космоса , после окончания моих заключительных скобок. В моем примере вам нужно выделить текст после,(placeholder="YOUR MESSAGE")
чтобы увидеть:ПЕРЕД:
ПОСЛЕ:
источник
Итак, вопрос теперь в том, как нам предварительно заполнить элемент textarea? XYZ, вы получите:
Основная проблема заключается в том, что в элементе textarea мы непреднамеренно заполняем элемент пробелом.
источник