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» </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>
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.