Ahí está el problema: necesito generar código html desde el contenedor de un div dado. Entonces, tengo que poner este código html en bruto en un área de texto. Cuando uso la función $ (textarea) .val () así:
$ (textarea) .val ("algunos html como <input type = 'text' value = '' style =" background: url ('http://www.w.com/bg.gif') repeat-x center; "/> bla bla");
o
$ ('# idTxtArGenHtml'). val ($ ('idDivMain'). html ());
Tuve problemas con algunos caracteres especiales ('') cuando están entre ''. Pero cuando uso la función: $ (textarea) .html () el texto está bien.
Hay un formulario de ejemplo:
<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>
Y el código javascript / jquery que no funciona para llenar el área de texto es:
function onGenHtml(){
$('#idTxtArGenHtml').html( $("#idDivMain").html() );
}
Finalmente la solución:
function onGenHtml(){
$('#idTxtArGenHtml').html( $("#idDivMain").html() );
$('#idTxtArGenHtml').parent().replaceWith( '<span>'+$('#idTxtArGenHtml').parent().html()+'</span>');
}
El truco es envolver su área de texto con una etiqueta span para ayudar con la función replaceWith. No estoy seguro de si está muy limpio, pero también funciona perfectamente, agregue código html sin procesar en un área de texto.