Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Non trovo l'errore

  1. #1

    Non trovo l'errore

    Io ho i seguenti bottoni radio:

    codice:
    <input type="radio" name="sezsel" checked="checked" onclick="sez(new, imp, forn, riv, priv, this);">Opz1    <input type="radio" name="sezsel" onclick="sez(imp, new, forn, riv, priv, this);">Opz2    <input type="radio" name="sezsel" onclick="sez(forn, imp, new, riv, priv, this);">Opz3    <input type="radio" name="sezsel" onclick="sez(riv, imp, forn, new, priv, this);">Opz4    <input type="radio" name="sezsel" onclick="sez(priv, imp, forn, riv, new, this);">Opz5
    che quando vengono selezionati devono visualizzare/nascondere determinati DIV.
    Ecco la funzione javascript adibita a ciò:

    codice:
    function sez (selected, item1, item2, item3, item4, check) {
            if (check.checked){
                selected.style.display = "";
                selected.style.visibility = "visible";
                item1.style.display = "none";
                item1.style.visibility = "hidden";
                item2.style.display = "none";
                item2.style.visibility = "hidden";
                item3.style.display = "none";
                item3.style.visibility = "hidden";
                item4.style.display = "none";
                item4.style.visibility = "hidden";
            }
            else {
                selected.style.display = "none";
                selected.style.visibility = "hidden";
            }
        }
    Il browser continua a riportare il messaggio di "Errore di sintassi", ma io non riesco a capire dove sia l'errore.

    Voi lo vedete?

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se new, imp, forn etc. sono stringhe le devi passare tra apici

    se sono nomi di campi per far riferimento al campo devi usare
    document.nomeForm.elements[item1]
    se sono id, di qualsiasi elemento,
    document.getElementById(item1)

  3. #3
    Sono ID:

    codice:
    <div id="new">
    ...
    </div>
    Seguendo il tuo suggerimento, ho modificato in questo modo:

    codice:
    <input type="radio" name="sezsel" checked="checked" onclick="sez(document.getElementById(new), document.getElementById(imp), document.getElementById(forn), document.getElementById(riv), document.getElementById(priv), this);">Opz1    <input type="radio" name="sezsel" onclick="sez(document.getElementById(imp), document.getElementById(new), document.getElementById(forn), document.getElementById(riv), document.getElementById(priv), this);">Opz2    <input type="radio" name="sezsel" onclick="sez(document.getElementById(forn), document.getElementById(imp), document.getElementById(new), document.getElementById(riv), document.getElementById(priv), this);">Opz3    <input type="radio" name="sezsel" onclick="sez(document.getElementById(riv), document.getElementById(imp), document.getElementById(forn), document.getElementById(new), document.getElementById(priv), this);">Opz4    <input type="radio" name="sezsel" onclick="sez(document.getElementById(priv), document.getElementById(imp), document.getElementById(forn), document.getElementById(riv), document.getElementById(new), this);">Opz5
    E il codice javascript:

    codice:
    function sez (selected, item1, item2, item3, item4, check) {
            if (check.checked){
                document.getElemendById(selected).style.display = "";
                document.getElemendById(selected).style.visibility = "visible";
                document.getElemendById(item1).style.display = "none";
                document.getElemendById(item1).style.visibility = "hidden";
                document.getElemendById(item2).style.display = "none";
                document.getElemendById(item2).style.visibility = "hidden";
                document.getElemendById(item3).style.display = "none";
                document.getElemendById(item3).style.visibility = "hidden";
                document.getElemendById(item4).style.display = "none";
                document.getElemendById(item4).style.visibility = "hidden";
            }
            else {
                document.getElemendById(selected).style.display = "none";
                document.getElemendById(selected).style.visibility = "hidden";
            }
        }
    Ma mi da sempre Errore di sintassi

    Sbaglio ancora?

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ripeto: se passi stringhe (e gli id sono stringhe) queste vanno tra apici
    onclick="sez('new', 'imp', 'forn', 'riv', 'priv', this);

    a questo punto i getElementById vanno solo nella funzione, non nel richiamo
    quindi e' giusto come hai scritto la funzione sez

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    poi e' il caso di cambiare tutti quegli "Elemend" in "Element"

  6. #6
    Grazie, ora funziona.

    Il fatto strano è che, in un altra pagina PHP, passo degli elementi tramite ID senza mettere gli apici e nella funzione manco uso document.getElementById() eppure funziona tutto alla perfezione.

    Mentre ora, facendo allo stesso modo, non funzionava ed ho dovuto fare come mi hai detto tu.

    Boh :master:

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    forse puo' esserti accaduto con IE che e' molto permissivo (eufemismo)
    comunque non era corretto sintatticamente quello che scrivevi prima

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.