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

    Problemi con Jscript e tag SELECT

    Ciao a tutti!
    Premetto innanzitutto che non sono molto pratico di jscript, quindi portate pazienza....
    Ho creato uno script che "dovrebbe" cambiare un'immagine posta affianco a un menù a tendina a seconda di che cosa viene selezionato nel menù a tendina stesso.
    Ho fatto così:

    codice:
    <script>
       function CambiaLogo(nome) {
          var oggetto = document.getElementById(nome).selectedIndex;
    	  switch(oggetto) {
    	  	 case 1: document.getElementById('logo').src = "./logonews_lan.gif";
    	     case 2: document.getElementById('logo').src = "./logo_news_hw.gif";
    		 case 3: document.getElementById('logo').src = "./logonews_games.gif";
    		 case 4: document.getElementById('logo').src = "./logonews_generica.gif";
    	  }
       }
    </script>
    mentre nell'HTML ho chiamato così la funzione

    codice:
    <td height=60 class=pagina_admin>Categoria
    
             <Select id=selezione name="categoria" onchange="CambiaLogo('selezione')">
    	 <option value="1">Lan party</option>
    	 <option value="2">Hardware</option>
    	 <option value="3">Giochi</option>
    	 <option value="4">Generica</option>
    </td>
    <td class=pagina_admin>[img]logonews_lan.gif[/img]</td>   </tr>
    Lo script però non funziona e cambia solo alla prima selezione e soprattutto con una immagine sbagliata.
    Dove ho sbagliato?
    Mi sapreste aiutare?
    Grazie,ciao

    Alder

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non e` jscript, ma javascript (jscript e` il dialetto Microsoft di javascript)

    Anzitutto manca il break; alla fine di ogni case:
    codice:
    switch(oggetto) {
      case 1: 
        document.getElementById('logo').src = "./logonews_lan.gif";
        break;
      case 2: 
        document.getElementById('logo').src = "./logo_news_hw.gif";
        break;
      case 3: 
        document.getElementById('logo').src = "./logonews_games.gif";
        break;
      case 4: 
        document.getElementById('logo').src = "./logonews_generica.gif";
        break;
    }
    Poi io passerei alla funzione l'oggetto, non il suo nome:

    codice:
    function CambiaLogo(ogg) {
      switch(ogg.selectedIndex) {
        case 0: // prima selezione 
     ....
        default: // se arriva un numero sbagliato
      }
    }
    ....
    <select id="selezione" name="selezione" onchange="CambiaLogo(this);">
    Nota che id e name vanno messi uguali (se li metti diversi ti imbrogli da solo).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ti ringrazio per l'aiuto!
    Ho provato a modificare lo script come dicevi tu,ma continua a non funzionare...
    Consigli!?

    Il codice ora è il seguente:

    codice:
      <select id="selezione" name="selezione" onchange="CambiaLogo(this);"> 
      <option value="0">Lan party</option>
      <option value="1">Hardware</option>
      <option value="2">Giochi</option>
      <option value="3">Generica</option>				  </select>
    codice:
    <script>
       function CambiaLogo(oggetto){
          switch(oggetto.selectIndex) {
    	  	 case 0: document.getElementById('logo').src = "./logonews_lan.gif";
    			break;
    	         case 1: document.getElementById('logo').src = "./logo_news_hw.gif";
    			break;
    		 case 2: document.getElementById('logo').src = "./logonews_games.gif";
    			break;
    		 case 3: document.getElementById('logo').src = "./logonews_generica.gif";
    			break;
    		 default: document.getElementById('logo').src = "./logonews_generica.gif";
    			break;
    	  }
       }
    </script>

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Cosa ritorna la proprieta` selectIndex? Io avevo usato selectedIndex.

    Per il resto dovrebbe andare bene.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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