Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    select onchange visualizza campo testo

    carissimi,
    devo fare una select che selezionando tra varie voci la voce ALTRO mi deve far visionare tramite una div un campo testo:
    Ho fatto così ma non funziona:
    codice:
    <script type="text/javascript">
    
     function describe(){
      document.getElementById("altri").style.display = "none";
      document.getElementById("altri").style.display = "";
     }
    </script>
    la voce della select:
    codice:
    <option value="ALTRO" onchange="describe(this.selectedIndex);">ALTRO</option>
    e poi la div
    codice:
    <div id="altri" style="display: none">
    <input type="text" name="altrititoli" size="56"></div>
    Cosa sbaglio?
    Grazie
    G.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Come e' logico aspettarsi una option non puo' cambiare... l'evento va applicato alla select.

    <select .... onchange="describe(this.selectedIndex);">

    poi ovviamente devi testare il valore passato per decidere se visualizzare l'elemento...


    function describe(n){
    document.getElementById("altri").style.display = (n==2) ? "block" : "none" ;
    }

    supponendo che l'indice della option di value="altro" sia il 2

    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
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Capito, grazie...
    Ho fatto così:
    codice:
    <script type="text/javascript">
    function stampaindiv(opzione){
    if(opzione == "ALTRO"){
    document.getElementById('altri').style.display='';
    }else { 
    document.getElementById('altri').style.display='none';
    } 
    } 
    setTimeout("stampaindiv(document.getElementById('Titolostudio').value,'altri');",1); 
    </script>
    
    
    -SELECT (stralcio)
    <select name="titolostudio" size="1" onChange="stampaindiv(this.value,'altri');"> 
    <option value="ABILITAZIONE MAGISTRALE"<%if studi = "ABILITAZIONE MAGISTRALE" then%> selected="selected"<%end if%>>ABILITAZIONE MAGISTRALE</option>
    <option value="ACCADEMIA BELLE ARTI"<%if studi = "ACCADEMIA BELLE ARTI" then%> selected="selected"<%end if%>>ACCADEMIA BELLE ARTI</option>    
    <option value="ALTRO" <%if studi = "ALTRO" then%> selected="selected"<%end if>>ALTRO</option>
    
    
    -DIV
    <div id="altri" style="display:none;">
    
    
    
    <input type="text" name="altrititoli" size="68" value="<%=rs.fields("altrititoli")%>"></p></div>
    Funziona se il campo selezionato (PRELEVATO DAL DB) dalla select è su ALTRO, se invece dal db preleva un altro campo (per es: ABILITAZIONE MAGISTRALE) mi da errore java NECESSARIO OGGETTO a questa riga document.getElementById('altri').style.display='no ne'; e giustamente non mi fa vedere la div

    Ma cosa strana , anche con l'errore indicato se vado su ALTRO mi fà vedere correttamente la div.
    Come posso risolvere il problema?
    Grazie
    G.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ho notato che l'errore NECESSARIO OGGETTO, lo fa solo al primo caricamento della pagina, se provo a refreshlarla anche con f5 l'errore sparire, cosa può essere?
    Grazie
    G.

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    probabilmente e' questa roba qui
    setTimeout("stampaindiv(document.getElementById('T itolostudio').value,'altri');",1);

    o posizioni fisicamente un blocco script che contiene solo il richiamo a stampaindiv() dopo questo div "altri"
    oppure fai eseguire sempre questo richiamo a stampaindiv() all' onload o al DOMload

    tirare ad indovinare con le tempistiche di caricamento (che poi... 1 millisecondo!!) non e' proprio il massimo...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    infatti il problema era li,
    comunque ho fatto così ed è tutto funzionante senza errori:
    codice:
    <body onload="stampaindiv(document.getElementById('Titolostudio').value,'altri');",1"">
    Grazie per il tuo aiuto.
    G.

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.