我试图用jquery在textarea字段中设置一个值,代码如下:

$("textarea#ExampleMessage").attr("value", result.exampleMessage);

问题是,一旦这段代码执行,它不改变文本区域的文本?

然而,当执行警报($("textarea#ExampleMessage").attr("value")),新设置的值返回?


当前回答

只需使用这段代码,你将永远有值:

Var t = $(this); Var v = t.val() || t.html() || t.text();

所以它会检查val()并设置它的值。如果val()得到一个空字符串,NULL, NaN o.s.,它将检查html(),然后检查text()…

其他回答

使用$("textarea#ExampleMessage").html('任何你想放在这里');可能是一种好方法,因为.val()在使用数据库中的数据时可能会出现问题。

例如:

数据库字段description的值为asjkdfklasdjf sjklñadf。在这种情况下,使用.val()为textarea赋值可能是一项乏味的工作。

在我的情况下,我有这个输入在iframe,任何上述解决我的问题,但这个:

我是这样解的:

$('#myId')[0].value="MY VALUE";

我的输入字段:

<textarea name="cmyInput" rows="2" cols="20" id="myId" class="nd" ignoreautotab="1"></textarea>

你找过瓦尔吗?

$("textarea#ExampleMessage").val(result.exampleMessage);

通过jQuery编辑文本区域内的文本使用$(id).html。

<textarea id="descricao2" name="descricao2" class="form" style="width:600px;height: 130px;"></textarea>

$("#descricao2").html("hello");

我已经使用$(textarea).val/html/text(any_str_var)都为我工作。 如果你想确保你的变量作为一个字符串被添加到文本区域,你总是可以这样concat:

$(textarea).val(unknown_var + '')

.val()方法肯定用于textarea -参见:https://api.jquery.com/val/

.html()可以用来获取或设置任何元素的内容-参见:https://api.jquery.com/html/#html2

.text()与.html相同,除了它可以用来设置XML内容:参见- https://api.jquery.com/text/#text-text

您还可以阅读更多关于每个链接如何处理特殊字符的信息。