ciao a tutti,
semplifico il mio problema al minimo poiché in realtà il mio codice è ahimè molto complesso.
ho due campi input text, nel primo campo posso inserire una serie di valori, mentre il secondo campo riceve i valori del primo campo e li confronta con quelli che già possiede. se ci sono dei valori doppi la funzione avvisa e l'utente può scegliere se sovrascriverli oppure cancellarli, altrimenti il valore viene aggiunto.
voglio fare questo tramite un ciclo for.
codice:<input id="valoredainserire" value="" type="text"><br> <!-- scrivo per esempio: "pere; mele; banane" --> <input id="valoredacambiare" value="pere; cipolle; mele; " type="text" readonly> <input type="button" onclick="prova();" value="Prova"> <script> function prova(){ var stringa_valoredainserire = document.getElementById("valoredainserire").value; var stringa_valoredacambiare = document.getElementById("valoredacambiare").value; var stringa_valoredacambiare2 = document.getElementById("valoredacambiare"); mioarray = stringa_valoredainserire.split("; "); var i, len, text; //inizio ciclo for for (i = 0, len = mioarray.length, text = ""; i < len; i++) { if(stringa_valoredacambiare.indexOf(mioarray[i]) !== -1){ if(confirm('il valore '+ mioarray[i] +' esiste, ok per sovrascriverlo, annulla per cancellarlo')){ stringa_valoredacambiare2.value = stringa_valoredacambiare.replace(mioarray[i], mioarray[i]); } else{ stringa_valoredacambiare2.value = stringa_valoredacambiare.replace(mioarray[i] +'; ', ''); } } else{ stringa_valoredacambiare2.value = stringa_valoredacambiare2.value + mioarray[i] +'; '; } } } </script>
il problema è che se i valori da inserire nel primo campo input sono uguali ai valori del secondo, qualora io li volessi cancellare, la funzione mi cancella solo l'ultimo, perché è l'ultima variabile che tiene in memoria.
come posso ovviare a questa situazione? qualche idea? grazie in anticipo.

Rispondi quotando