Visualizzazione risultati 1 fino 11 di 11

Discussione: Usare <div> come fosse <textarea>

  1. #1
    ImpresaVisentin non è connesso Neofita
    Data registrazione
    23-04-2012
    Messaggi
    16

    Talking Usare <div> come fosse <textarea>

    Ho il seguente codice html all'interno di un form:
    Codice HTML:
    <div name="commento" class="comment" contenteditable="true" role="textarea" style="height:150px">
    </div>
    Il problema è che quando invio il form ciò che viene scritto all'interno del div non viene inviato perchè ciò che voglio fare è proprio usare il div come fosse una textarea.
    So che è possibile perchè sono capitato in un sito che sfruttava il div in questo modo. Ora tutto quel che so è di inserire il tag role="textarea" e opzionale lo stile overflow. Non so nemmeno che linguaggio serva per fare tutto questo. Se ho sbagliato sezione ditemelo
    Ultima modifica di ImpresaVisentin : 25-09-2012 alle ore 22.05.14

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Scusa la domanda, ma sorge spontanea...
    Perché non utilizzi una textarea?

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da ImpresaVisentin Visualizza messaggio
    Ho il seguente codice html all'interno di un form:
    Codice HTML:
    <div name="commento" class="comment" contenteditable="true" role="textarea" style="height:150px">
    </div>
    Il problema è che quando invio il form ciò che viene scritto all'interno del div non viene inviato perchè ciò che voglio fare è proprio usare il div come fosse una textarea.
    Npn ho mai usato qusto sistema, ma immagino che tu possa inviare i dati solo prelevandoli prima con javascript con qualcosa del tipo

    var testo = document.getElementById("idDelDiv").innerHTML (o value o text... come ti ho detto non l'ho mai usato)

    e poi costruire, sempre con javascript, la stringa di query. Insomma non credo proprio che tu possa sfruttare il classico submit dei form.

    Ciao e fammi sapere come va che la cosa mi interessa.

  4. #4
    ImpresaVisentin non è connesso Neofita
    Data registrazione
    23-04-2012
    Messaggi
    16

    Talking

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Scusa la domanda, ma sorge spontanea...
    Perché non utilizzi una textarea?
    Non utilizzo una textarea perchè non permette di ottenere effetti quali font,colore e altre cose dei css. Inoltre sono interessato a sfruttare il div per qualcosa che non è il suo scopo originario.

  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Allora perché non usi un editor già pronto, come CKEditor?

  6. #6
    ImpresaVisentin non è connesso Neofita
    Data registrazione
    23-04-2012
    Messaggi
    16

    Talking

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Allora perché non usi un editor già pronto, come CKEditor?
    Ma CKEditor da quel che ho letto serve per modificare il proprio sito. a me non serve anche tutta la formattazione come nei commenti su altervista.

    Comunque l'autore del sito che ho visto cioè questo:


    Usa questo codice nei commenti:
    Codice HTML:
    <div class="dsq-textarea-wrapper" id="dsq-textarea-wrapper" style="height: auto; "> 
    <!-- filled dynamically --> <iframe name="easyXDM_DISQUS_net_default4175_provider" id="easyXDM_DISQUS_net_default4175_provider" scrolling="no" 
    frameborder="0" src="http://mediacdn.disqus.com/1348604076/build/system/reply.html#xdm_e=http%3A%2F%2Fwww.mrwebmaster.it&amp;xdm_c=default4175&amp;xdm_p=1&amp;f=mrwebmaster&amp;t=i_form_moduli_guida_html_html_mrwebmaster&amp;ff=verdana%2C%20arial%2C%20tahoma&amp;d=ltr&amp;p=Scrivi%20qui%20il%20tuo%20commento.&amp;upload_media=false&amp;mentions=true"
    style="position: relative; top: 0px; height: 84px;"></iframe>
    </div>
    Sfrutta quindi un frame in linea per modificare in questo modo a mano a mano il div commento. Ogni riga è un altro div e se è vuota mette <br>. Siccome è davvero complicato (credo) è meglio se torno ad usare come diceva il saggio radiodelmomento
    quindi vi ringrazio tutti delle vostre risposte comunque!




    Per :
    Ho provato a fare come mi dicevi, il codice viene:
    Codice HTML:
    <script>
    function copy() {
     var divcomm=document.getElementById("commentodiv").firstChild.nodeValue;
     var testo=document.createTextNode(divcomm);
     var divhide=document.getElementById("commentoform").appendChild(testo);
    }
    </script>
    
    <form>
    
    <div id="commentodiv" 
    style="border: 1px outset #FF8800;background-color: #EEEEEE" contenteditable="true" role="textarea" style="height:150px" onblur="copy()">
    </div>
    
    <textarea name="commento" id="commentoform" style="display:none">
    </textarea>
    
    </form>
    Ho fatto in modo che copiasse il contenuto del div all'interno di textarea ogni volta che deseleziono il div. Ha un brutto inconveniente però. Il testo copiato si ferma al primo a capo ed è quindi inutilizzabile in un commento.

  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Se, come consigliatoti, anche se non vuoi usare un editor già pronto, puoi sempre prendere spunto dal codice di quell'editor.

    Cmq, php per fare questo non centra nulla, e senza che te utilizzi una textarea, puoi, come vuoi fare te, rendere il contenuto del div editabile ( modificabile ) esiste una funzione proprio per questo, dai un'occhiata qui:

    http://javascript.gakaa.com/div-contenteditable.aspx

    In poche parole, per fare ciò si usa la proprietà contentEditable del javascript, impostata a true rende il contenuto modificabile ( come se fosse una textarea ), impostata a farse, lo rende non modificabile.

    P.S.: In'oltre se rendi il contenuto editabile non hai problemi causati dai ritorni a capo, anche se il contenitore occupa una linea e se te vai al capo, esso aumenta la sua altezza di una riga.
    Ultima modifica di sevenjeak : 26-09-2012 alle ore 19.00.17

    Sevenjeak
    Software developer and much more

  8. #8
    ImpresaVisentin non è connesso Neofita
    Data registrazione
    23-04-2012
    Messaggi
    16

    Talking

    Non nn funziona, anche perchè è lo stesso che impostare l'attributo contenteditable="true". Come ho detto prima l'unica soluzione possibile e il frame in linea che non voglio sapere come funziona perchè troppo complicato.

  9. #9
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Come non funziona, a me funziona benissimo, ora non saprei di preciso come dovresti farlo funzionare te, ma a me funziona, mi rende il testo editabile.

    Premetto di non aver visto il metodo del frame, lo sto vedendo ora, ma il fatto che sia complicato mi fa pensare al fatto che sia la migliore soluzione, la cosa forse è complicata, ma no impossibile da studiare, forse è anche l'unica opzione migliore.
    Ultima modifica di sevenjeak : 27-09-2012 alle ore 10.08.32

    Sevenjeak
    Software developer and much more

  10. #10
    ImpresaVisentin non è connesso Neofita
    Data registrazione
    23-04-2012
    Messaggi
    16

    Talking

    Sevenjeak forse mi sono spiegato male. Sì il testo viene reso editabile però mi riferivo al fatto che non inviasse il contenuto del div all'invio del form

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da ImpresaVisentin Visualizza messaggio
    Sevenjeak forse mi sono spiegato male. Sì il testo viene reso editabile però mi riferivo al fatto che non inviasse il contenuto del div all'invio del form
    Nessun form invierà il contenuto del div al submit()

    Devi gestire l'invio dei dati con javascript.

    Al limite per farlo al volo ti crei una textarea nascosta, con javascript prendi il contenuto del div e lo metti nella textarea, poi fai il submit. Non è elegante ma funziona.

    Ciao!

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •