Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Textarea recuperare e sostituire il testo selezionato

    Ciao a tutti.
    Ho un problema, devo recuperare il testo che viene selezionato in una textarea poi sostituirlo con altro testo ma senza toccare il testo fuori selezione come posso fare?
    Premetto che selezionare il testo lo fatto con getSelection() ora pero non so come sostituire il testo selezionato.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao,


    devi controllare 3 eventi:
    la selezione di un testo nella textarea, la modifica della textarea, e il click sul bottone sostituisci.

    Se provi a scrivere un testo nel campo input, poi un testo nella textarea, selezionare una parte di testo della textarea e premete il bottone sostituisci.
    ecco il codice:
    codice:
    <textarea id="miatextarea" rows="4" cols="50"></textarea>
    <input id="mioinput">
    <button id="miobottone">
      Sostituisci
    </button>
    <script>
      window.onload=function(){
        var inizio=null;
        var fine=null;
        document.getElementById("miatextarea").addEventListener("select",catturaTesto);
        document.getElementById("miatextarea").addEventListener("keypress",resettaVariabili);
        document.getElementById("miobottone").addEventListener("click",copiaTesto);
        
        function catturaTesto(){
          let miaTextArea=document.getElementById("miatextarea");
          inizio = miaTextArea.selectionStart;
          fine = miaTextArea.selectionEnd;
        }
        
        function resettaVariabili(){
          inizio=null;
          fine=null;
        }
        
        function copiaTesto(){
          if (!inizio){
            alert("non hai selezionato alcun testo");
            return;
          }
          let referenzaTextArea=document.getElementById("miatextarea");
          let miaTextArea=document.getElementById("miatextarea").value;
          let mioInput=document.getElementById("mioinput").value;
          let risultato=miaTextArea.substring(0,inizio)+ mioInput + miaTextArea.substring(fine);
          document.getElementById("miatextarea").value=risultato;
        }
      }
    </script>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.