HTML5 textarea marcador de posición no aparece


No puedo averiguar qué está mal con mi marcado, pero el marcador de posición para el área de texto no aparecerá. Parece como si pudiera 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>
Author: thejartender, 2012-04-17

7 answers

Esta siempre ha sido una trampa para mí y muchos otros. En resumen, las etiquetas de apertura y cierre para el elemento <textarea> 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:

<textarea></textarea>

Malo:

<textarea>
</textarea>
 491
Author: Aquarelle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-07 14:53:53

Elimine todos los espacios y saltos de línea entre las etiquetas <textarea> opening y closing </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 
 28
Author: Mahendra Jella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-25 09:54:01

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 que comenzó a trabajar

 9
Author: matthew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-05 21:44:25

Bueno, técnicamente no tiene que estar en la misma línea siempre y cuando no haya ningún carácter entre el final ">" de la etiqueta de inicio y el inicio "...></textarea> como en el siguiente ejemplo:

<p><label>Comments:<br>
       <textarea id = "comments" rows = "4" cols = "36" 
            placeholder = "Enter comments here"
            class = "valid"></textarea>
    </label>
</p>
 4
Author: Conny P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-12 21:40:17

Use <textarea></textarea> en lugar de dejar un espacio entre las etiquetas de apertura y cierre como <textarea> </textarea>

 2
Author: Yet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-27 14:52:08

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 como valor que anula el marcador de posición.

    **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>
 0
Author: Yergalem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-25 13:38:40

Tuve el mismo problema, solo usando un archivo .pug (similar a .jade). Me di cuenta de que también era un problema de espacio , después del final de mis paréntesis de cierre. En mi ejemplo, necesitas resaltar el texto después de (placeholder="YOUR MESSAGE") para ver:

ANTES:

form.form-horizontal(method='POST')
  .form-group
    textarea.form-control(placeholder="YOUR MESSAGE") 
  .form-group  
    button.btn.btn-primary(type='submit') SUBMIT

DESPUÉS DE:

form.form-horizontal(method='POST')
  .form-group
    textarea.form-control(placeholder="YOUR MESSAGE")
  .form-group  
    button.btn.btn-primary(type='submit') SUBMIT
 0
Author: maudulus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-18 14:43:14