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

    radiobutton e campi nascosti

    ho un'altra domanda ... scusate ma sono un principiante ...

    ho due radiobutton e due campi calcolati, ad ogni radiobutton corrisponde un campo, ma vorrei che il campo corrispondente al radiobutton non "checcato" sia nascosto. Se poi si clicca sul bottone non checcato appare il campo nascosto e scompare in compenso l'altro campo. Se si torna a cliccare sul primo rb la situazione torna ad invertirsi.

    Qualcuno sa dirmi come si fà?

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Se ho capito bene...

    codice:
    ...
    <head>
    <script>
    function show(field) {
      if (field == 'rb1') {
        document.getElementById('rb1text').style.display = 'inline';
        document.getElementById('rb2text').style.display = 'none';
      }
      else {
        document.getElementById('rb1text').style.display = 'none';
        document.getElementById('rb2text').style.display = 'inline';  
      }
    }
    </script>
    </head>
    
    <body>
    ....
    <input type="radio" name="rb" id="rb" value="rb1" checked="checked" onclick="show(this.value)" value="campo1" />
    <input type="text" name="rb1text" id="rb1text" />
    
    
    <input type="radio" name="rb" id="rb" value="rb2" onclick="show(this.value)" value="campo2">
    <input type="text" name="rb2text" id="rb2text" style="display:none" />

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Grazie Caldera, gentilissimo e disponibile come sempre.

    Si la formula che cercavo é più o meno questa, però a questo punto mi si ripresenta il problema come scatenare l'evento "funzione calcola il campoi 1 e calcola il campo 2", visto che la funzione onclick é già stata usata per scatenare la funzione di hide or show, e per qualche strano motivo non riesco a far funzionare due "onclick" in sequenza. Inoltre essendo uno dei due campi già checked non scatenerebbe l'onclick comunque proprio perché non c'é click...

    Ho provato a far scatenare la funzione di calcolo inserendola nella riga di uno dei campi calcolati che fanno parte del calcolo stesso, ma ho scoperto che l'onchange non funziona con dei campi che contengono un risultato di altre funzioni...

    chiedo venia, sò che probabilmente mi spiego male quindi provo a postare una parte del form:

    <head>
    <script language="JavaScript" type="text/JavaScript">
    <!--

    //costruiamo la formula per il totale intermedio1

    function startCalc1(){
    interval = setInterval("calc1()",1);
    }
    function calc1(){
    AB = document.acquisto_caf.UNICO_TOT.value*"1.2";
    AC = document.acquisto_caf.MODELLI770S_TOT.value*"1.2";
    AD = document.acquisto_caf.ICI_TOT.value*"1.2";
    AF = document.acquisto_caf.ENTRATEL_TOT.value*"1.2";
    document.acquisto_caf.INTERMEDIO1.value = (AB * 1) + (AC * 1) + (AD * 1) + (AF * 1);
    }

    //costruiamo la formula per il totale intermedio2

    function startCalc2(){
    interval = setInterval("calc2()",1);
    }
    function calc2(){
    AK = document.acquisto_caf.CREDITO_ANNO_PRECEDENTE.valu e*"1";
    AG = document.acquisto_caf.MODELLI730_TOT1.value*"1.2";
    AH = document.acquisto_caf.ISEE_TOT1.value*"1.2";
    AI = document.acquisto_caf.RED_TOT1.value*"1.2";
    document.acquisto_caf.INTERMEDIO2.value = ("0" * 1) - (AG * 1) - (AH * 1) - (AI * 1) - (AK * 1);
    }


    //costruiamo la formula per il calcolo del TOTALEGENERALE_COMPENSATO

    function startCalc3(){
    interval = setInterval ("calc3()",1);
    }
    function calc3(){
    C1 = parseFloat(document.acquisto_caf.INTERMEDIO1.value );
    C2 = parseFloat(document.acquisto_caf.INTERMEDIO2.value );
    document.acquisto_caf.TOTALEGENERALE_COMPENSATO.va lue = (C1*1) + (C2*1);
    }

    //costruiamo la formula per il calcolo del TOTALEGENERALE_NON_COMPENSATO

    function startCalc4(){
    interval = setInterval ("calc4()",1);
    }
    function calc4(){
    C1 = parseFloat(document.acquisto_caf.INTERMEDIO1.value );
    document.acquisto_caf.TOTALEGENERALE_NON_COMPENSAT O.value = (C1*1);
    }



    //costruiamo la formula del show-hide per i campi TOTALEGENERALE_COMPENSATO e TOTALEGENERALE_NON_COMPENSATO
    function show(field) {
    if (field == 'rb1') {
    document.getElementById('rb1text').style.display = 'inline';
    document.getElementById('rb2text').style.display = 'none';
    }
    else {
    document.getElementById('rb1text').style.display = 'none';
    document.getElementById('rb2text').style.display = 'inline';
    }
    }
    //-->
    </script>
    </head>

    <body>
    <table>
    <form>
    .....
    ....

    <tr>
    <td class=cella_unita colSpan=2><u><font size="3">COMPENSAZIONE DEBITI CREDITI</font></u></td></tr>

    <tr>
    <td class="cella_sx" nowrap="nowrap" width="50%">TOTALE A DEBITO: </td>
    <td class="cella_dx" noWrap>Euro:<INPUT class="text" style="text-align:right;" maxLength=12 size=12 value="" name="INTERMEDIO1" id="INTERMEDIO1"></td></tr>
    <tr>
    <td class="cella_sx" nowrap="nowrap" width="50%">TOTALE A CREDITO: </td>
    <td class="cella_dx" noWrap>Euro:<INPUT class="text" style="text-align:right;" maxLength=12 size=12 value="" name="INTERMEDIO2" id="INTERMEDIO2"></td></tr>
    <tr>
    <td class="cella_unita" colspan="2"> -----------------------------</td></tr>
    <tr>
    <td class="cella_sx" nowrap="nowrap" width="50%"><font size="+1">Vuoi compensare gl'importi a debito e credito?</font> </td>
    <td class="cella_dx" noWrap>
    NO<input type="radio" name="rb" id="rb" value="rb1" checked="checked" onclick="show(this.value)" value="TOTALEGENERALE_NON_COMPENSATO" />
    SI<input type="radio" name="rb" id="rb" value="rb2" onclick="show(this.value)" value="TOTALEGENERALE_COMPENSATO"></td>
    </form>
    </body>

    I campi "INTERMEDIO" e "INTERMEDIO1" contengono il risultato calcolato di una serie di altre operazioni..

    se io inserisco nella loro linea la funzione \\onchange="startcalc3();" \\non succede nulla in quanto onchange non riesce a rilevare il cambiamento da "" a "123456"

    mentre se inserisco la funzione \\onclick="startcalc3();" \\ e \\onclick="startcalc4();" \\nelle rispettive righe di TOTALEGENERALE_COMPENSATO e TOTALEGENERALE_NON_COMPENSATO, mi ritrovo con quanto detto sopra, cioé non riesco a far funzionare due "onclick" in sequenza, e comunque essendo uno dei due campi già "checked" non scatenerebbe il secondo onclick comunque proprio perché non c'é click... :master:

    Come ne vengo fuori?

  4. #4
    Proprio nessuno che ha una soluzione da proporre?

    o volete vedere il form come viene fuori:

    form prova

    ma i due radio button non funzionano ...

  5. #5
    ma proprio nessuno ha una soluzione da proporre?

  6. #6

  7. #7

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.