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

    confronto tra 2 stringhe...Errato

    Ciaoi a tutti non riesco a capire come fare una cosa:
    devo recuperare il contenuto di un div che contiene alcuni nomi di utenti separati da una "," e se io clicco su un button che mi richiama una funzione praticamente mi deve prendere il valore selezionato in una select(il nome di un utente),controllare che non sia già in lista nel div ed eventualmente inserirlo...
    Io ho creato questa funzione ma al confronto tra le due stringhe se io l'utente ce l'avevo già all'interno scritto non mi restituisce che esiste e quindi me lo riscrive...Come mai??

    codice:
      function InsertIn()
      {
    	  //metto in una variabile il nome dell'utente selezionato nella select e ne creo un link
    	  var insertIn = selectUtente.options[selectUtente.selectedIndex].value;
    	  var insertInLink = ''+insertIn+''
    	 
    	 // metto in una variabile il contenuto del DIV		 
    	  var contenuto = document.getElementById("MyDiv").innerHTML;
    
    		// eseguo uno split che mi prende un utente alla volta da quelli recuperati dal DIV
    		 var splitThisIns = contenuto.split(",");
    		 var limitThisIns = splitThisIns.length;
    		 var bolFoundIt = false;
    		 var recovered ='';
    		 	for(var i=0; i<limitThisIns; i++)
    			{
    				recovered = splitThisIns[i];
    				upRecovered = recovered.toUpperCase();
    				upInsertInLink = insertInLink.toUpperCase();
    				
    				if(upRecovered == upInsertInLink)
    				{
    					bolFoundIt = true;
    				}
    			}
    		 
    
    		if(bolFoundIt == false) 
    	  		var completedString = contenuto+','+insertInLink;
    		else
    			var completedString = contenuto;
    	  
    	  document.getElementById("MyDiv").innerHTML=completedString;
      }
    Non riesco a capire dove sia il problema...

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    function InsertIn()  {
      var insertIn = document.tuoForm.selectUtente.options[ document.tuoForm.selectUtente.selectedIndex].value;
      var insertInLink = ''+insertIn+'';
      var contenuto = document.getElementById("MyDiv").innerHTML;
      if indexOf(contenuto, insertInLink)>=0) document.getElementById("MyDiv").innerHTML = contenuto +','+insertInLink; 
    }
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma se devi controllare la presenza di un nome in una select sia presente anche nella textarea potrebbe bastarti indexOf prova cosi:
    codice:
    function InsertIn()
      {
    	  //metto in una variabile il nome dell'utente selezionato nella select e ne creo un link
    	  var insertIn = selectUtente.options[selectUtente.selectedIndex].value;
    	  var insertInLink = ''+insertIn+''
    
    	 // metto in una variabile il contenuto del DIV		 
    	  var contenuto = document.getElementById("MyDiv").innerHTML;
    
    		// contro se nella textarea c'è il nome 
    		if(contenuto.indexOf(insertIn)!=-1) 
    	  		var completedString = contenuto+','+insertInLink;
    		else
    			var completedString = contenuto;
    	  
    	  document.getElementById("MyDiv").innerHTML=completedString;
      }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Grazie ragazzi!

  5. #5
    La funzione va benissimo con mozilla e chrome ma con nessuno di IE funziona...Come posso fixare il problema?

    mettiamo caso che ho questo semplice codice:
    codice:
       function ContenutoInserito()
       {
    	  var contenuto = document.getElementById("myDiv").innerHTML;
    	  var confronto = 'Nessun utente Quotato';
    	  	if(contenuto.indexOf(confronto)!=-1)
    			  document.getElementById("divLink").innerHTML='';
    		else
    			  document.getElementById("divLink").innerHTML='<=';
       }
    Praticamente mi va sempre nella else,mi legge il contenuto all'interno del div myDiv ma nel confronto non me lo passa...
    E così anche con altre funzioni!!!
    Come posso risolvere?

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Inizia col mettere le parentesi graffe nel if
    if(contenuto.indexOf(confronto)!=-1){
    document.getElementById("divLink").innerHTML='';
    }else{
    document.getElementById("divLink").innerHTML='<=';}
    ho riscontrato che non metterle da dei problemi, ma non è detto che sia questo, al limite fai un po di debug con degli alert nella funzione che verifichino variabili, passaggi, etc... se non riesci a risolvere posta il link alla pagina pubblica per poter testare il tutto.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Grazie per la tua risposta,io ho fatto una prova e ho messo il risultato della indexOf dentro una variabile ed ho eseguito un alert effettivamente mi restituisce valore -1 quindi lo fa errato..

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.