No puedo entender qué está mal con mi marcado, pero el marcador de posición para el área de texto no aparecerá. Parece que puede estar cubierto con algunos espacios en blanco y pestañas. Cuando se enfoca en el área de texto y elimina desde donde se coloca el cursor, luego abandona el área de texto, aparece el marcador de posición adecuado.
<!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>
Respuestas:
Este siempre ha sido un problema para mí y para muchos otros. En resumen, las etiquetas de apertura y cierre para el
<textarea>
elemento deben estar en la misma línea, de lo contrario, un carácter de nueva línea lo ocupa. Por lo tanto, el marcador de posición no se mostrará ya que el área de entrada contiene contenido (un carácter de nueva línea es, técnicamente, contenido válido).Bueno:
Malo:
Actualización (2020)
Esto ya no es cierto , de acuerdo con la especificación de análisis HTML5:
Sin embargo, es posible que aún tenga problemas si su editor insiste en terminar las líneas con CRLF.
fuente
.trim
método de jQuery .$('textarea'),each(function(i) { if ($.trim($(this).text()) == '') $(this).text('').trigger('blur'); });
/>
lugar de>
. Ejemplo:$('body').html('<textarea placeholder="test" />');
<textarea>
, significa que el área de texto no está vacía, por lo tanto, no hay uso para un marcador de posición. :)Elimine todos los espacios y saltos de línea entre
<textarea>
las</textarea>
etiquetas de apertura y cierre .fuente
es porque hay un espacio en alguna parte. Estaba usando jsfiddle y había un espacio después de la etiqueta. Después de eliminar el espacio, comenzó a funcionar
fuente
Bueno, técnicamente no tiene que estar en la misma línea siempre que no haya caracteres entre el final ">" de la etiqueta de inicio y el "<" de inicio de la etiqueta de cierre. Es necesario terminar con
...></textarea>
el siguiente ejemplo:fuente
Sé que esta publicación ha sido (muy bien) respondida por Aquarelle, pero en caso de que alguien tenga este problema con otros formularios de etiquetas sin texto como entradas, lo dejaré aquí:
Si tiene una entrada en su formulario y el marcador de posición no se muestra porque hay un espacio en blanco al principio, esto puede ser causado por su atributo de "valor". En caso de que esté utilizando variables para completar el valor de una entrada, verifique que no haya espacios en blanco entre las comas y las variables.
ejemplo usando twig para php framework symfony:
En este caso, la etiqueta entre {{}} es la variable, solo asegúrese de no dejar espacios entre las comas porque el espacio en blanco también es un carácter válido.
fuente
use en
<textarea></textarea>
lugar de dejar un espacio entre las etiquetas de apertura y cierre como<textarea> </textarea>
fuente
Entre la etiqueta de apertura y cierre en nuestro caso, la etiqueta textarea no debe ser espacio o carácter de nueva línea o cualquier texto (valor).
Si hay espacio, carácter de nueva línea o cualquier texto, se considera un valor que anula el marcador de posición.
fuente
Tuve el mismo problema, solo usando un
.pug
archivo (similar a.jade
). Me di cuenta de que también era un problema espacial , después del final de mis paréntesis de cierre. En mi ejemplo, debe resaltar el texto después(placeholder="YOUR MESSAGE")
para ver:ANTES DE:
DESPUÉS:
fuente
Entonces, la pregunta ahora es ¿cómo rellenamos previamente el elemento textarea? XYZ, obtendrás:
El principal problema es que en el elemento textarea estamos rellenando involuntariamente el elemento con espacios en blanco.
fuente