Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    25

    Passaggio valori ad una funzione

    Salve a tutti, ho un problema con una funzione, o meglio vorrei risparmiare un pò di codice perchè ho tre funzioni che fanno pressappoco la stessa cosa, ve le illustro:

    function abituale(){

    var elem = document.getElementById("ab");
    var datiguida = document.getElementById("datiguida");
    var nuovaguida = document.getElementById("nuovaguida");
    var guidadefault = document.getElementById("guidadefault");
    var opz = document.getElementById("selguida");
    if(elem.checked == true){
    guidadefault.style.visibility = "visible";
    guidadefault.style.display = "block";
    datiguida.style.visibility = "hidden";
    datiguida.style.display = "none";
    nuovaguida.style.visibility = "hidden";
    nuovaguida.style.display = "none";
    opz.disabled = true;
    }
    }

    function nuovaguida(){
    var elem = document.getElementById("ng");
    var nuovaguida = document.getElementById("nuovaguida");
    var guidadefault = document.getElementById("guidadefault");
    var datiguida = document.getElementById("datiguida");
    var opz = document.getElementById("selguida");
    if(elem.checked == true){
    nuovaguida.style.visibility = "visible";
    nuovaguida.style.display = "block";
    guidadefault.style.visibility = "hidden";
    guidadefault.style.display = "none";
    datiguida.style.visibility = "hidden";
    datiguida.style.display = "none";
    opz.disabled = true;
    }
    }

    function selguida(){
    var elem = document.getElementById("dg");
    var nuovaguida = document.getElementById("nuovaguida");
    var guidadefault = document.getElementById("guidadefault");
    var datiguida = document.getElementById("datiguida");
    var opz = document.getElementById("selguida");
    if(elem.checked == true){
    datiguida.style.visibility = "visible";
    datiguida.style.display = "block";
    guidadefault.style.visibility = "hidden";
    guidadefault.style.display = "none";
    nuovaguida.style.visibility = "hidden";
    nuovaguida.style.display = "none";
    opz.disabled = false;
    }
    }

    Nella pagina php ho tre input radio:

    <input type="radio" id="ab" name="guida" value="abituale" checked onclick="abituale();"/>Abituale

    <input type="radio" id="dg" name="guida" value="seleziona" onclick="attivasel();"/>
    <input type="radio" id="ng" name="guida" value="nuova" onclick="nuovaguida();"/>

    Ho tre div, a seconda del radio cliccato deve comparire il div associato ad esso, le prime sei istruzioni di tutte e tre le funzioni sono identiche, avevo pensato di passare alla funzione tutti gli id di cui ho bisogno, più o meno in questo modo:

    <input type="radio" id="ng" name="guida" value="nuova" onclick="nuovaguida(ng,nuovaguida,guidadefault,dat iguida,selguida);"/>

    e la funzione così:

    function nuovaguida(ng,nuovaguida,guidadefault,datiguida,se lguida){
    var elem = document.getElementById(ng);
    ..............
    .........
    }
    e così via....

    solo che al primo misero tentativo..il mio elem all'interno della funzione è null, c'è un modo preciso per passare i valori in questo modo? Ho provato tra apici, doppi apiici, senza apici,this.id,this ma niente..non funziona, se lascio le funzioni così come sono, la pagina funziona tranquillamente, solo che domani ho l'esame e il professore pretende massimo risparmio di codice..quindi vorrei "accontentarlo"

    Vi ringrazio in anticipo!
    Saluti

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Vedi se cosi va bene:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    .stile{
    	display: none;
    	width: 600px;
    	margin-right: auto;
    	margin-left: auto;
    	
    }
    </style>
    <script language="javascript">
    function mostra(obj,c){
    var colore = new Array("#FF3300","#CCFF00","#990000")
    var r = document.getElementsByTagName("input")
    for(var i=0; i<r.length; i++){
    if(r[i].id==obj){
    document.getElementById('_'+i).style.display='block';
    document.getElementById('_'+i).style.border=colore[c]+'solid 1px';
    }else{document.getElementById('_'+i).style.display='none';}
    }
    }
    </script>
    <title>Documento senza titolo</title>
    </head>
    <body>
    <form action="" method="get"> 
    <input type="radio" id="ab" name="guida" value="abituale" onclick="mostra('ab',0);"/>Abituale
    
    <input type="radio" id="dg" name="guida" value="seleziona" onclick="mostra('dg',1);"/>Seleziona
    
    <input type="radio" id="ng" name="guida" value="nuova" onclick="mostra('ng',2);"/>Nuova
    
    <div id="_0" class="stile">abituale</div>
    <div id="_1" class="stile">seleziona</div>
    <div id="_2" class="stile">nuova</div>
    </form>
    </body>
    </html>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    25
    Perfetto! Ora me lo raffino al meglio per le mie esigenze Grazie mille!

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.