590 Stimmen

Wert der Textarea in jQuery festlegen

Ich versuche, einen Wert in einem Textarea-Feld mit Jquery mit dem folgenden Code zu setzen:

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

Das Problem ist, sobald dieser Code ausgeführt wird, ist es nicht den Text in der Textarea zu ändern?

Bei der Durchführung einer alert($("textarea#ExampleMessage").attr("value")) der neu eingestellte Wert zurückgegeben wird?

16voto

Dan Ochiana Punkte 3094

Auf Android .val y .html hat nicht funktioniert.

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

hat die Arbeit erledigt.

11voto

Michel Punkte 22429

Ich hatte dieselbe Frage und beschloss, es in den aktuellen Browsern zu versuchen (wir sind anderthalb Jahre später in der Zeit nach dieser Frage), und dies ( .val ) arbeitet

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

für

  • IE8
  • FF 3.6
  • FF4
  • Oper 11
  • Chrom 10

8voto

dave Punkte 81

Ich hatte dasselbe Problem und diese Lösung hat nicht funktioniert, aber was funktioniert hat, war die Verwendung von html

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

7voto

Luka Ramishvili Punkte 860

Textarea speichert Werte nicht als

<textarea value="someString">

speichert es stattdessen Werte in diesem Format:

<textarea>someString</textarea>

だから attr("value","someString") erhält man dieses Ergebnis:

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

Versuchen Sie $("#textareaid").val() o $("#textareaid").innerHTML stattdessen.

6voto

Mathieua Punkte 69

Hier das Problem: Ich muss HTML-Code aus dem Inhalt eines bestimmten Divs generieren. Dann muss ich diesen rohen HTML-Code in ein Textfeld einfügen. Wenn ich die Funktion $(textarea).val() wie dieses :

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

oder

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

Ich hatte Probleme mit einigen Sonderzeichen ( & ' " ) wenn sie zwischen den Quoten liegen. Aber wenn ich die Funktion : $(textarea).html() der Text ist in Ordnung.

Dort ein Beispielformular:

<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>

Und javascript/jquery-Code, die nicht funktionieren, um das Textfeld zu füllen ist:

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

Endlich die Lösung:

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

Der Trick ist wrap your textarea mit einem span-Tag, um mit der replaceWith-Funktion zu helfen. Ich bin mir nicht sicher, ob das sehr sauber ist, aber es funktioniert perfekt, um rohen HTML-Code in ein Textfeld einzufügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X