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

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

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

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


当前回答

我已经使用$(textarea).val/html/text(any_str_var)都为我工作。 如果你想确保你的变量作为一个字符串被添加到文本区域,你总是可以这样concat:

$(textarea).val(unknown_var + '')

.val()方法肯定用于textarea -参见:https://api.jquery.com/val/

.html()可以用来获取或设置任何元素的内容-参见:https://api.jquery.com/html/#html2

.text()与.html相同,除了它可以用来设置XML内容:参见- https://api.jquery.com/text/#text-text

您还可以阅读更多关于每个链接如何处理特殊字符的信息。

其他回答

有问题:我需要从一个给定的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&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()  );
}

最后解决方案:

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

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

Textarea不存储值为

<textarea value="someString">

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

<textarea>someString</textarea>

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

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

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

如此:

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

记住,这里棘手的部分是确保您使用了正确的ID。 在使用ID之前,请确保在它前面加上#。

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

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

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

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

完成了任务。