我试图用jquery在textarea字段中设置一个值,代码如下:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
问题是,一旦这段代码执行,它不改变文本区域的文本?
然而,当执行警报($("textarea#ExampleMessage").attr("value")),新设置的值返回?
我试图用jquery在textarea字段中设置一个值,代码如下:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
问题是,一旦这段代码执行,它不改变文本区域的文本?
然而,当执行警报($("textarea#ExampleMessage").attr("value")),新设置的值返回?
当前回答
我们可以使用.val()或.text()方法来设置值。我们需要像val("hello")一样在val()中放入值。
$(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
其他回答
有问题:我需要从一个给定的div的包含生成html代码。然后,我必须把这个原始的html代码在一个文本区域。当我像这样使用函数$(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");
or
$('#idTxtArGenHtml').val( $('idDivMain').html() );
当他们在“”之间时,我对一些特殊的字符(& ' ")有问题。但是当我使用这个函数时: $(textarea).html()文本是可以的。
这里有一个表单示例:
<FORM id="idFormContact" name="nFormContact" action="send.php" method="post" >
<FIELDSET id="idFieldContact" class="CMainFieldset">
<LEGEND>Test your newsletter» </LEGEND>
<p>Send to à : <input id='idInpMailList' type='text' value='youremail@gmail.com' /></p>
<FIELDSET class="CChildFieldset">
<LEGEND>Subject</LEGEND>
<LABEL for="idNomClient" class="CInfoLabel">Enter the subject: * </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();"/>
<INPUT id="idBtnSend" type="button" value="Send" onclick="onSend();"/><BR/><BR/>
<LEGEND>Message</LEGEND>
<LABEL for="idTxtArGenHtml" class="CInfoLabel">Html code : * </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() );
}
最后解决方案:
function onGenHtml(){
$('#idTxtArGenHtml').html( $("#idDivMain").html() );
$('#idTxtArGenHtml').parent().replaceWith( '<span>'+$('#idTxtArGenHtml').parent().html()+'</span>');
}
诀窍是用span标签包装文本区域,以帮助replaceWith函数。 我不确定它是否非常干净,但它的工作完美太添加原始的html代码在文本区。
接受的答案对我来说是可行的,但这是在我意识到必须在页面加载完成后执行代码之后。在这种情况下,内联脚本不起作用,我猜是因为#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');
通过jQuery编辑文本区域内的文本使用$(id).html。
<textarea id="descricao2" name="descricao2" class="form" style="width:600px;height: 130px;"></textarea>
$("#descricao2").html("hello");
使用$("textarea#ExampleMessage").html('任何你想放在这里');可能是一种好方法,因为.val()在使用数据库中的数据时可能会出现问题。
例如:
数据库字段description的值为asjkdfklasdjf sjklñadf。在这种情况下,使用.val()为textarea赋值可能是一项乏味的工作。