Estou tentando definir um valor em um campo de área de texto usando jquery com o seguinte código:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
O problema é que, uma vez que esse código é executado, ele não está alterando o texto na área de texto?
No entanto, ao executar um alert($("textarea#ExampleMessage").attr("value"))
valor recém-definido, é retornado?
Respostas:
Você já tentou val?
fonte
value
atributo HTML , mas isso não importa, porque ambosval()
eattr('value')
gravam na propriedade value do JavaScript. Note,attr()
se não definir atributos HTML! Ele define apenas as propriedades do JavaScript, enquanto tenta ocultar a diferença para casos como class / className em que o nome é diferente. Mas você ainda verá a diferença nos locais em que o atributo e a propriedade fazem coisas diferentes, como nos elementos do formulário.val(foo)
funciona para mim (jQuery 1.9.1). O uso detext(foo)
perde para atualizar o conteúdo da área de texto perde as quebras de linha no IE, usando asval(foo)
preserva.A área de texto não possui atributo value, seu valor é entre tags, ou seja:
<textarea>my text</textarea>
não é como o campo de entrada (<input value="my text" />
). É por isso que attr não funciona :)fonte
$("textarea#ExampleMessage").val()
em jquery apenas uma mágica.Você deve observar que a tag textarea usa o html interno para exibir e não o atributo value, assim como a tag de entrada.
Você deveria usar
ou
depende se você deseja exibi-lo como tags html ou texto sem formatação.
fonte
Oohh vamos lá meninos! funciona apenas com
fonte
Eu acho que isso deve funcionar :
fonte
eu tinha a mesma pergunta, então decidi experimentá-lo nos navegadores atuais (estamos um ano e meio depois dessa pergunta), e isso (
.val
) funcionapara
fonte
.val()
vai fazer a sua magia em vários navegadores;)No android
.val
e.html
não funcionou.fez o trabalho.
fonte
Eu tive o mesmo problema e esta solução não funcionou, mas o que funcionou foi usar html
fonte
html()
está a trabalhar apenas uma vez por textarea, da próxima vez, você quer alterar o conteúdo de forma dinâmica detextarea
,html()
não vai funcionar ...$('#textarea').val(encodedtext);
Há o problema: eu preciso gerar código html a partir do conteúdo de uma determinada div. Então, eu tenho que colocar esse código html bruto em uma área de texto. Quando eu uso a função $ (textarea) .val () assim:
ou
Eu tive problema com algum caractere especial (& '") quando eles estão entre asp. Mas quando eu uso a função: $ (textarea) .html () o texto está ok.
Há um exemplo de formulário:
E o código javascript / jquery que não funciona para preencher a área de texto é:
Finalmente a solução:
O truque é envolver sua área de texto com uma tag span para ajudar na função replaceWith. Não tenho certeza se é muito limpo, mas é um trabalho perfeito também adicionar código html bruto em uma área de texto.
fonte
textarea não armazena valores como
em vez disso, ele armazena valores neste formato:
Então
attr("value","someString")
você obtém este resultado:tente
$("#textareaid").val()
ou em$("#textareaid").innerHTML
vez disso.fonte
Área de texto não tem valor. jQuery .html () funciona neste caso
fonte
html()
está a trabalhar apenas uma vez por textarea, da próxima vez, você quer alterar o conteúdo de forma dinâmica detextarea
,html()
não vai funcionar ...Funciona para mim ... Eu construí uma parede de livro de rosto ...
Aqui está a base do meu código:
fonte
Para definir o valor da área de texto do HTML codificado (para mostrar como HTML), você deve usar
.html( the_var )
mas conforme mencionado, se você tentar defini-lo novamente, ele pode (e provavelmente) não funcionará.Você pode corrigir isso esvaziando a área de texto
.empty()
e configurando-a novamente com.html( the_var )
Aqui está um JSFiddle em funcionamento: https://jsfiddle.net/w7b1thgw/2/
fonte
Eu tentei com
.val()
.text()
.html()
e teve alguns erros usando jQuery para ler ou definir o valor de uma área de texto ... eu termino usando js nativofonte
Podemos usar os métodos .val () ou .text () para definir valores. precisamos colocar valor dentro de val () como val ("olá").
Veja o exemplo aqui: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html
fonte
Basta usar o ID da área de texto de acordo com o tipo:
fonte
Acho que falta um aspecto importante:
funciona apenas quando há um seletor de ID (#)
para o seletor de classe, existe uma opção para usar o valor nativo como:
fonte
A resposta aceita funciona para mim, mas somente depois que percebi que precisava executar meu código após o carregamento da página. Nessa situação, o script embutido não funcionou, acho que porque #my_form ainda não foi carregado.
fonte
Você pode até usar o snippet abaixo.
fonte
Quando eu tinha o JQuery v1.4.4 na página, nenhum deles funcionou. Ao injetar o JQuery v1.7.1 na minha página, funcionou finalmente. Portanto, no meu caso, foi a minha versão do JQuery que estava causando o problema.
id ==> textareaid
======================
fonte
Eu já usei
$(textarea).val/html/text(any_str_var)
tudo funcionou para mim. Se você deseja ter certeza de que sua variável como uma string é adicionada à área de texto, você sempre pode concatenar da seguinte maneira:O método .val () é definitivamente usado na área de texto - consulte: https://api.jquery.com/val/
.html () pode ser usado para obter ou definir o conteúdo de qualquer elemento - consulte: https://api.jquery.com/html/#html2
.text () é o mesmo que .html, exceto que isso pode ser usado para definir o conteúdo XML: consulte - https://api.jquery.com/text/#text-text
Você também pode ler mais sobre como cada um age com caracteres especiais em cada um desses links.
fonte
Basta usar este código e você sempre terá o valor:
var t = $(this); var v = t.val() || t.html() || t.text();
Portanto, ele verificará val () e definirá seu valor. Se val () obtiver uma string vazia, NULL, NaN os, verificará html () e, em seguida, text () ...
fonte
Isso funciona:
Lembre-se, a parte complicada aqui é garantir que você use o ID correto. E antes de usar o ID, certifique-se de colocá-
#
lo antes dele.fonte
O uso
$("textarea#ExampleMessage").html('whatever you want to put here');
pode ser uma boa maneira, pois.val()
pode haver problemas quando você está usando dados do banco de dados.Por exemplo:
Um campo de banco de dados chamado as
description
possui o seguinte valorasjkdfklasdjf sjklñadf
. Nesse caso, usar .val () para atribuir valor à área de texto pode ser um trabalho tedioso.fonte
Eu tentei definir valor / texto / html usando JQuery, mas não foi bem-sucedido. Então, eu tentei o seguinte.
Nesse caso, eu estava injetando um novo elemento de área de texto em um DOM após criado.
fonte