Domanda

eccone uno facile (con cui sto lottando)! Ho una textarea, un pulsante e un div vuoto. Tutto quello che voglio fare è inserire il contenuto aggiornato dell'area di testo nel div onFare clic sul pulsante. Ecco cosa ho ottenuto finora:

<html>
 <head>
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">
   function get_text() {
    $("#preview").replaceWith( $("#editor").val() );
   }
  </script>
 </head>
 <body>
  <form>
   <textarea name="editor" id="editor">GrumbleCakes</textarea>
   <input type="button" value="Preview" onclick="get_text();" />
  </form>
  <div id="preview"></div>
 </body>
</html>

Funziona la prima volta che fai clic sul pulsante ... con il valore presente nell'area di testo al caricamento della pagina (" GrumbleCakes "), ma questo è tutto. Non funzionerà con alcun testo aggiornato.

È stato utile?

Soluzione

Puoi impostare il HTML interno o il contenuto testuale del div di anteprima usando html o text :

$("#preview").html($("#editor").val());

Altri suggerimenti

.replaceWith sostituisce effettivamente l'elemento DOM. Quindi il div viene rimosso e sostituito con il testo. Le chiamate successive alla funzione non troveranno più il div, poiché è stato rimosso.

Penso che tu voglia usare

.html ($ (" # editor di ".) Val ()).

Entrambi

$ ( '# anteprima "). Html ($ (" # editor di ".) Val ())

e

$ (" # preview "). text ($ (" # editor "). val ())

dovrebbe funzionare.

Tuttavia, .html consentirà a chiunque di iniettare html o javascript nel tuo sito lasciandolo aperto per attacchi di cross-site scripting ...

jikes !!

man stai sostituendo div con i contenuti della textarea. utilizzare invece questa funzione:

function get_text(){
    var t=$("editor").val();
    $("#preview").text(t);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top