在jQuery中设置textarea的值

我试图在下面的代码中使用jquery在textarea字段中设置一个值:

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

问题是,一旦这个代码执行,它不会改变textarea中的文本?

但是,当执行一个alert($("textarea#ExampleMessage").attr("value")) ,新设置的值被返回?

你尝试过val吗?

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

Textarea没有value属性,它的值在标签之间,即: <textarea>my text</textarea> ,它不像input字段( <input value="my text" /> )。 这就是为什么attr不工作:)

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

你应该注意到textarea标签使用inner html来显示,而不是像input标签一样在value属性中

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

你应该使用

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

要么

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

取决于你想要显示为html标签还是纯文本。

我认为这应该工作:

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

哦,来吧,男孩! 它适用于

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

我有同样的问题,所以我决定尝试在目前的浏览器(我们在这个问题后的一年半时间),这( .val )的作品

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

对于

  • IE8
  • FF 3.6
  • FF4
  • 歌剧11
  • Chrome 10

我有同样的问题,这种解决scheme没有工作,但工作是使用HTML

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

有问题:我需要从包含给定的div生成HTML代码。 然后,我必须把这个原始的HTML代码放在textarea中。 当我使用函数$(textarea).val()像这样:

$(textarea).val(“some html like <input type ='text'value =''style =”background:url('http://www.w.com/bg.gif')repeat-x center; “/> bla bla”);

要么

$('#idTxtArGenHtml')。val($('idDivMain')。html());

我有一些特殊字符(&'“),当他们之间的问题。但是,当我使用函数:$(textarea).html()的文字是好的。

有一个例子forms:

 <FORM id="idFormContact" name="nFormContact" action="send.php" method="post" > <FIELDSET id="idFieldContact" class="CMainFieldset"> <LEGEND>Test your newsletter&raquo; </LEGEND> <p>Send to &agrave; : <input id='idInpMailList' type='text' value='youremail@gmail.com' /></p> <FIELDSET class="CChildFieldset"> <LEGEND>Subject</LEGEND> <LABEL for="idNomClient" class="CInfoLabel">Enter the subject: *&nbsp</LABEL><BR/> <INPUT value="" name="nSubject" type="text" id="idSubject" class="CFormInput" alt="Enter the Subject" ><BR/> </FIELDSET> <FIELDSET class="CChildFieldset"> <INPUT id="idBtnGen" type="button" value="Generate" onclick="onGenHtml();"/>&nbsp;&nbsp; <INPUT id="idBtnSend" type="button" value="Send" onclick="onSend();"/><BR/><BR/> <LEGEND>Message</LEGEND> <LABEL for="idTxtArGenHtml" class="CInfoLabel">Html code : *&nbsp</LABEL><BR/> <span><TEXTAREA name="nTxtArGenHtml" id="idTxtArGenHtml" width='100%' cols="69" rows="300" alt="enter your message" ></TEXTAREA></span> </FIELDSET> </FIELDSET> </FORM> 

和JavaScript / jQuery的代码,不工作填充文本区域是:

 function onGenHtml(){ $('#idTxtArGenHtml').html( $("#idDivMain").html() ); } 

最后解决scheme:

 function onGenHtml(){ $('#idTxtArGenHtml').html( $("#idDivMain").html() ); $('#idTxtArGenHtml').parent().replaceWith( '<span>'+$('#idTxtArGenHtml').parent().html()+'</span>'); } 

诀窍是用span标签来包装你的textarea,以帮助replaceWith函数。 我不确定它是否非常干净,但它的工作完美,也在textarea中添加原始html代码。

文本区域没有价值。 jQuery .html()在这种情况下工作

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

textarea不会将值存储为

 <textarea value="someString"> 

相反,它以这种格式存储值:

 <textarea>someString</textarea> 

所以attr("value","someString")得到这个结果:

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

尝试$("#textareaid").val()$("#textareaid").innerHTML来代替。

我尝试使用.val() . .val() .html()并有一些错误使用jQuery来读取或设置一个textarea的值…我endup使用本机js

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

它适用于我….我已经build立了一个脸书墙…

这是我的代码的基础:

 // SETS MY TEXT AREA TO EMPTY (NO VALUE) $('textarea#message_wall').val(''); 

我们可以使用.val()或.text()方法来设置值。 我们需要把value放在val()中,像val(“hello”)。

  $(document).ready(function () { $("#submitbtn").click(function () { var inputVal = $("#inputText").val(); $("#txtMessage").val(inputVal); }); }); 

检查例子: http : //www.codegateway.com/2012/03/set-value-to-textarea-jquery.html

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

你可以通过清空textarea.empty .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> 

在android.val和.html没有工作。 $('#id').text(“some value”)做了这个工作。

接受的答案适用于我,但只有当我意识到我必须在页面加载完成后执行我的代码。 在这种情况下行内脚本不工作,我猜是因为#my_form还没有完成加载。

 $(document).ready(function() { $("#my_form textarea").val(''); }); 

你甚至可以使用下面的代码片段。

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

当我在页面中使用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 Id:

 $("textarea#samplID").val() 

只要使用这个代码,你将永远有价值:

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

所以它会检查val()并设置它的值。 如果val()得到一个空string,NULL,NaN os将检查html(),然后检查文本()…

这工作:

 var t = $('#taCommentSalesAdministration'); t.val('Hi'); 

记住,这里棘手的部分是确保你使用正确的ID。 在使用ID之前,请确保将#放在前面。

使用$("textarea#ExampleMessage").html('whatever you want to put here'); 可以是一个好方法,因为.val()在使用数据库中的数据时可能会遇到问题。

例如:

名为description数据库字段具有以下值asjkdfklasdjf sjklñadf 。 在这种情况下,使用.val()将值分配给textarea可能是一项繁琐的工作。

我认为缺less一个重要方面:

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

仅在有IDselect器(#)时才有效

对于类select器,有一个选项可以使用原生值,如:

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