我试图用jquery在textarea字段中设置一个值,代码如下:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
问题是,一旦这段代码执行,它不改变文本区域的文本?
然而,当执行警报($("textarea#ExampleMessage").attr("value")),新设置的值返回?
我试图用jquery在textarea字段中设置一个值,代码如下:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
问题是,一旦这段代码执行,它不改变文本区域的文本?
然而,当执行警报($("textarea#ExampleMessage").attr("value")),新设置的值返回?
当前回答
我尝试使用JQuery设置值/文本/ html,但不成功。 所以我尝试了以下方法。
在这种情况下,我注入新的textarea元素后DOM创建。
var valueToDisplay= 'Your text here even with line breaks';
var textBox = '<textarea class="form-control" >'+ valueToDisplay +'</textarea>';
$(td).html(textBox);
其他回答
要设置编码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="<a href="google.com">google.com</a>">Google HTML</a> <a id="yahoo_html" class="load_html" href="#" data-my_html="<a href="yahoo.com">yahoo.com</a>">Yahoo HTML</a> <a id="clear_html" href="#">Clear HTML</a>
它为我工作.... 我建了一个脸书墙……
下面是我的代码的基础:
// SETS MY TEXT AREA TO EMPTY (NO VALUE)
$('textarea#message_wall').val('');
接受的答案对我来说是可行的,但这是在我意识到必须在页面加载完成后执行代码之后。在这种情况下,内联脚本不起作用,我猜是因为#my_form还没有加载完成。
$(document).ready(function() {
$("#my_form textarea").val('');
});
当我在页面中使用JQuery v1.4.4时,这两种方法都不起作用。当将JQuery v1.7.1注入到我的页面时,它终于工作了。所以在我的例子中,是我的JQuery版本导致了这个问题。
id ==> textareaid
======================
var script1 = document.createElement("script");
script1.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
document.body.appendChild(script1);
var script2 = document.createElement("script");
script2.type = "text/javascript";
script2.innerHTML = "var $jq171 = $.noConflict();";
document.body.appendChild(script2);
$jq171('#textareaid').val('xxx');
Textarea不存储值为
<textarea value="someString">
相反,它以以下格式存储值:
<textarea>someString</textarea>
attr("value","someString")会得到这样的结果:
<textarea value="someString">someOLDString</textarea>.
试试$(“textareaid”)。innerHTML instead。