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

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

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

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


当前回答

要设置编码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>

其他回答

我也有同样的问题,这个解决方案不工作,但工作的是使用html

$('#your_textarea_id').html('some_value');

你找过瓦尔吗?

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

Textarea不存储值为

<textarea value="someString">

相反,它以以下格式存储值:

<textarea>someString</textarea>

attr("value","someString")会得到这样的结果:

<textarea value="someString">someOLDString</textarea>.

试试$(“textareaid”)。innerHTML instead。

我认为这里缺少一个重要的方面:

$('#some-text-area').val('test');

只有当有ID选择器(#)时才有效

对于类选择器,有一个选项可以使用本机值,如:

$('.some-text-area')[0].value = 'test';

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

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

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