Eu quero definir um valor padrão para o meu html <textarea>
. Eu li de um material que, para adicionar valor padrão, você precisa fazer algo parecido <textarea>This is default text</textarea>
. Eu fiz isso, mas não funciona. Qual é a coisa certa a fazer?
349
Respostas:
Aqui está o meu exemplo do jsFiddle . isso funciona bem:
fonte
Você pode usar o Atributo do espaço reservado , que não adiciona um valor padrão, mas pode ser o que você procura:
Confira aqui - http://jsfiddle.net/8DzCE/949/
Nota importante (como sugerido por Jon Brave nos comentários) :
O atributo Placeholder não define o valor de uma área de texto. Em vez disso "O atributo placeholder representa uma dica curta (uma palavra ou frase curta) destinada a auxiliar o usuário na entrada de dados quando o controle não tem valor" [e desaparece assim que o usuário clica na área de texto]. Ele nunca atuará como "o valor padrão" para o controle. Se você quiser isso, deve inserir o texto desejado dentro do valor padrão Aqui está o valor real, conforme outras respostas aqui
fonte
placeholder
não define o valor de atextarea
. Em vez disso "O atributo placeholder representa uma dica curta (uma palavra ou frase curta) destinada a auxiliar o usuário na entrada de dados quando o controle não tem valor" [e desaparece assim que o usuário clica na área de texto]. Ele nunca atuará como "o valor padrão" para o controle. Se você quiser, deve colocar o texto desejado dentro do<textarea>Here is the actual default value</textarea>
, conforme outras respostas aqui.Se você deseja trazer informações de um banco de dados para uma tag de área de texto para edição: A tag de entrada não exibe dados que ocupam várias linhas: linhas não funcionam, a entrada da tag é uma linha.
A tag textarea não tem valor , mas funciona bem com o guidão
fonte
Apenas no caso, se você estiver usando o Angular.js no seu projeto (como eu sou) e tiver um
ng-model
conjunto para o seu<textarea>
, definindo o padrão por dentro como:...não funciona!
Você precisa definir o valor padrão para as áreas de texto
ng-model
no respectivo controlador ou usong-init
.Exemplo 1 (usando
ng-init
):Mostrar snippet de código
Exemplo 2 (sem usar
ng-init
):Mostrar snippet de código
fonte
Algumas notas e esclarecimentos:
placeholder=''
insere o texto, mas está acinzentado (em um formato de dica de ferramenta) e, no momento em que o campo é clicado, o texto é substituído por um campo de texto vazio.value=''
não é um<textarea>
atributo e funciona apenas para<input>
tags, ou seja,<input type='text'>
etc. Não sei por que os criadores do HTML5 decidiram não incorporar isso, mas é assim que é por enquanto.O melhor método para inserir texto em
<textarea>
elementos foi descrito corretamente aqui como:<textarea> Desired text to be inserted into the field upon page load </textarea>
Quando o usuário clica no campo, ele pode editar o texto e ele permanece no campo (ao contrárioplaceholder=''
).<textarea>
e</textarea>
, não poderá usá-placeholder=''
lo, pois ele será substituído pelo texto inserido.fonte
Quando faço algo assim, funcionou para mim:
fonte
Além disso, isso funcionou muito bem para mim:
Nesse caso, $ _POST ['encode'] veio disso:
O código PHP foi inserido entre as tags e.
fonte
O espaço reservado não pode definir o valor padrão para a área de texto. Você pode usar
Essa é a tag se você a estiver usando para conexão com o banco de dados. Você pode usar sintaxe diferente se estiver usando outros idiomas além do php.
por exemplo:
O comando necessário minimiza os esforços necessários para verificar campos vazios usando php.
fonte
Você pode usar this.innerHTML.
Quando a área de texto é focada, basicamente torna o HTML interno do texto em uma string vazia.
fonte
Observe que, se você fez alterações na área de texto, após a renderização; Você receberá o valor atualizado em vez do valor inicializado.
Como você pode ver, o valor da área de texto será diferente do texto entre a tag de abertura e fechamento da área de texto de preocupação.
fonte
Você também pode adicionar o atributo "value" e definir algo assim:
fonte
<textarea>
não suporta ovalue
atributo".