Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89

    [JQuery e TinyMCE] Creazione dinamica Textarea

    Salve a tutti.

    Conoscete TinyMCE ? Per chi non fosse a conoscenza della sua funzionalità do una brevissima spiegazione
    Questo strumento serve per trasformare semplici <textarea></texarea> in RICHTEXTAREA permettendo l'interpretazione dei TAG html e dotandole di tutti i vari controlli necessaria alla videoscrittura.

    Ho un sito nel quale creo dinamicamente delle TEXTAREA tramite un semplicissimo .append in Jquery, fin qui tutto funzionava correttamente. Ho deciso di voler applicare TinyMCE a tutte queste textarea e quindi mi sono recato direttamente sul sito ufficiale. Dal sito ho appreso che la funzione corretta per trasformare dinamicamente una textarea in rich tramite Jquery è la seguente

    codice:
    tinyMCE.execCommand('mceAddControl', false, 'id_della_textarea');
    Ho quindi aggiunto questa funzione al mio script Jquery ( premetto che sono molto esperto in ambito JQuery) ed ho creato questo script

    codice:
        <script type="text/javascript">
    	$(document).ready(function(){
    		var ids = 1;
    		$("#addt").click(function(){
    		$('.ftd').append('<label>Descrizione</label>
    <textarea name="desc[]" id="' + ids.toString() + '"></textarea>
    ');
    		tinyMCE.execCommand('mceAddControl', false, ids.toString());
    		ids++;
    		});
    	});
        </script>
    Il problema di questo semplice script è che non funziona ! Come è possibile vedere creo una variabile IDS e le assegno il valore 1. Al click del mio bottone inserisco una nuova textarea impostando l'id = alla variabile appena creata.
    A questo punto chiamo la funzione di tinyMCE ed avvio la trasformazione ( che riesce correttamente ) quindi incremento il valore di ids di 1.

    Il problema nasce se clicco nuovamente sul mio bottone, la textarea viene aggiunta ma questa volta lo stile di TinyMCE non viene caricato, cliccando nuovamente invece tutto funziona correttamente.
    Mi sono quindi reso conto che tutte le textarea con ID dispari vengono trasformate correttamente, mentre quelle con id PARI vengono tralasciate ( facendo il debug con FIREBUG lo script non presenta alcun errore )

    Spero in un vostro aiuto

    Ciao a tutti !

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Ho fatto alcune prove anch'io e ho notato che funziona appunto solo con i dispari , perciò ti propongo una soluzione di base e cioè quella di aumentare di 2 ids

    codice:
    $(document).ready(function(){
    	    var ids = 1;
    		$("#addt").click(function(){
    		$('.ftd').append('<label>Descrizione</label>
    <textarea name="desc[]" id="' + ids.toString() + '"></textarea>
    ');
    		tinyMCE.execCommand('mceAddControl', false, ids.toString());
    		ids+=2;
    		});
    	});
    (cosi funziona a me)

  3. #3
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89
    Ed infatti è quello che ho fatto ! solo che è antipatica come cosa xD

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Un id non dovrebbe mai essere valorizzato con un numero, non so se è questo che può creare problemi nel tuo script, resta il fatto che è sbagliato. potresti creare un id incrementale usando una parola concatenata ad un numero.

    id="elemento' + ids.toString()


  5. #5
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89
    Già il fatto degli ID numerici lo avevo letto ma sinceramente sono andato in automatico ho associato ID a quello del DB

    Comunque adesso provo subito e vedo se risolve ! Grazie mille !

  6. #6
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89
    OK effettivamente abbiando all'ID una nome alfanumerico va tutto Ok ! Evidentemente lo script javascript quando riceve il parametro numerico genera qualche errore interno e manda tutto all'aria !

    Spero che questo post possa essere utile anche ad altri dato che io ( per non aver ricordato una regola HTML ) ho perso quasi 2 ore !

    Ciao a tutti e grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.