Estou usando jQuery e me perguntando se devo usar val () ou text () (ou outro método) para ler e atualizar o conteúdo de uma textarea.
Eu tentei ambos e tive problemas com ambos. Quando eu uso text () para atualizar textarea, as quebras de linha (\ n) não funcionam. Quando eu uso val () para recuperar o conteúdo textarea, o texto fica truncado se for muito longo.
Respostas:
A melhor maneira de set / get o valor de uma textarea é a
.val()
,.value
método..text()
usa internamente o.textContent
(ou.innerText
método para o IE) para obter o conteúdo de a<textarea>
. Os seguintes casos de teste ilustram comotext()
e se.val()
relacionam entre si:A
value
propriedade , usada por.val()
sempre mostra o valor visível atual, enquantotext()
o valor de retorno de pode estar errado.fonte
text()
NÃO funciona mais após alterar manualmente qualquer coisa nela (por exemplo, adicionar um caractere).val()
sempre trabalha comtextarea
elementos..text()
funciona às vezes e falha outras vezes! Não é confiável (testado no Chrome 33)O melhor é que
.val()
funcione perfeitamente com outros elementos do formulário também (comoinput
), enquanto.text()
falha.fonte