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

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

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

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


当前回答

在android上。val和。html不起作用。

$('#id').text("some value")

完成了任务。

其他回答

我尝试了.val() .text() .html(),并有一些bug使用jQuery读取或设置文本区域的值…我最终使用原生js

$('#message').blur(function() {    
    if (this.value == '') { this.value = msg_greeting; }
});

$("textarea#ExampleMessage").val()在jquery中只是一个魔法。

你应该注意到textarea标签使用内部html显示,而不是在值属性就像输入标签。

<textarea>blah blah</textarea>
<input type="text" value="blah blah"/>

你应该使用

$("textarea#ExampleMessage").html(result.exampleMessage)

or

$("textarea#ExampleMessage").text(result.exampleMessage)

这取决于您是想将其显示为HTML标记还是纯文本。

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

例如:

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

要设置编码HTML的textarea值(显示为HTML),您应该使用. HTML (the_var),但如前所述,如果您尝试并再次设置它可能(很可能)将无法工作。

你可以通过清空文本区域的.empty(),然后再次设置。html(the_var)来修复这个问题。

这是一个工作的JSFiddle: https://jsfiddle.net/w7b1thgw/2/

jQuery(function($){ $('.load_html').click(function(){ var my_var = $(this).data('my_html'); $('#dynamic_html').html( my_var ); }); $('#clear_html').click(function(){ $('#dynamic_html').empty(); }); }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <textarea id="dynamic_html"></textarea> <a id="google_html" class="load_html" href="#" data-my_html="&lt;a href=&quot;google.com&quot;&gt;google.com&lt;/a&gt;">Google HTML</a> <a id="yahoo_html" class="load_html" href="#" data-my_html="&lt;a href=&quot;yahoo.com&quot;&gt;yahoo.com&lt;/a&gt;">Yahoo HTML</a> <a id="clear_html" href="#">Clear HTML</a>

我也有同样的问题,所以我决定在当前的浏览器中尝试它(在这个问题之后,我们在时间上晚了一年半),并且这个(.val)是有效的

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

for

IE8 FF 3.6 FF4 Opera 11 Chrome 10