我找不出我的标记出了什么问题,但文本区域的占位符将不会出现。似乎它可能被一些空格和制表符所掩盖。当您将焦点放在文本区域并删除光标所在的位置,然后离开文本区域时,相应的占位符就会出现。
<!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>
发布于 2012-12-27 08:34:59
对于我和其他许多人来说,这一直是一个难题。简而言之,<textarea>
元素的开始标记和结束标记必须在同一行上,否则换行符将占据它。因此不会显示占位符,因为输入区域包含内容(换行符从技术上讲是有效内容)。
好:
<textarea></textarea>
不好:
<textarea>
</textarea>
更新(2020)
根据HTML5解析规范,这不再是not true了:
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-07-06 05:44:25
这是因为在某个地方有一个空间。我使用的是jsfiddle,标签后面有一个空格。我删除空间后,它就开始工作了
发布于 2015-06-13 03:03:38
好吧,从技术上讲,只要在开始标记的结束">“和结束标记的开始"<”之间没有字符,它就不必在同一行上。也就是说,您需要以...></textarea>
结尾,如下例所示:
<p><label>Comments:<br>
<textarea id = "comments" rows = "4" cols = "36"
placeholder = "Enter comments here"
class = "valid"></textarea>
</label>
</p>
https://stackoverflow.com/questions/10186913
复制相似问题