Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355

    lanciare funzione a seconda del radiobutton selezionato

    Sera a tutti.

    Sapreste dirmi come fare per lanciare una funzione a seconda del radiobutton che è selezionato?

    Mi spiego meglio:
    ho una funzione che abilita determinati campi nel momento in cui l'utente seleziona un radiobutton (la funzione viene lanciata all'evento onClick)

    dopo di che l'utente invia il form e se ha commesso errori devo far apparire i valori già immessi all'interno dei relativi campi.

    il problema si verifica con i radiobutton riesco a farli apparire selezionati ma non riesco a abilitare gli opportuni campi

    potreste aiutarmi?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Una descrizione cosi' esclusivamente testuale senza una riga del codice usato (che potrebbe essere scritto in millemila modi) mi sembra un tantino poco per chiedere aiuto... sempreche' tu non voglia un aiuto generico del tipo "auguri" o "lancia la stessa funzione quando carichi la pagina".

    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 L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    Hai ragione br1 ecco il codice che sto utilizzando

    <script language="Javascript" type="text/javascript">
    function Disabilita(stato1,stato2,stato3,stato4,stato5) {
    document.getElementById('1').disabled = stato1;
    document.getElementById('2').disabled = stato2;
    document.getElementById('3').disabled = stato3;
    document.getElementById('4').disabled = stato4;
    document.getElementById('5').disabled = stato5;
    }
    </script>

    <input type="radio" name="1" value="1" id="1" onClick="Disabilita(false, false, false, false, true);" <% If Session("1") = "1" or Session("1") = "" then response.write("checked") end if%> />
    <input name="2" type="text" id="2" size="70" value="<%If Session("F")<>"manca" then Response.Write(Session("FYT")) End if%>" />
    .
    .
    .
    <input type="radio" name="7" value="7" id="7" onClick="Disabilita(true, false, false, false, false);" <% If Session("7") = "7" then response.write("checked") end if%> />
    <input name="7" type="text" id="7" size="70" value="<%If Session("F")<>"manca" then Response.Write(Session("FYT67")) End if%>" />

    quindi:

    chiamando la funzione il tutto funziona ma il problema si verifica quando l'utente invia il form.

    Prima seleziona un radio button ed inserisce i relativi campi che si sono attivati di conseguenza poi invia il form ma se ha commesso un errore quando la pagina viene inviata il radiobutton resta selezionato ma i campi che dovrebbero restare attivi, risultano disabilitati

    spero di ricevere aiuto
    (da scrivere tutto il codice è veramente un po lunghetta la cosa)

    grazie

  4. #4
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    Ragazzi insomma.... dovrei fare in maniera che la funzione che disabilita/abilita gli input box parta anche nel momento in cui il radio button risulti selezionato come posso fare?

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Vediamo se possiamo mettere ordine in quel guazzabuglio

    Se a te occorre una funzione che disabiliti i radio non selezionati (ma mi sfugge totalmente lo scopo ) intanto dovresti cambiare tutti gli ID (t'ha mai detto nessuno che non possono essere numerici? ) , quindi spiegare come mai non imposti il "disabled" direttamente da ASP dato che gia' esegui un ciclo di controllo... ed infine farci capire come mai tutti i radio hanno nomi diversi (che gia' questo risolverebbe il problema)

    scusa la curiosita'
    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

  6. #6
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    Ok scusami br1 la colpa è mia ma ci sto sbattendo la testa da ore ed allora perdo la lucidità.

    Mi spiego meglio:

    Io ho questo codice:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script language="Javascript" type="text/javascript">
    function Disabilita(stato1,stato2,stato3,stato4,stato5,stat o6)
    document.getElementById('_1').disabled = stato1;
    document.getElementById('_2').disabled = stato2;
    document.getElementById('_3').disabled = stato3;
    document.getElementById('_4').disabled = stato4;
    document.getElementById('semplice').disabled = stato5;
    document.getElementById('avanzata').disabled = stato6;
    }
    </script>
    </head>

    <body>
    <form method="POST" action="?save=1" enctype="multipart/form-data" name="modulo">
    <div id="scelta_1_elenco_radio"><input type="radio" name="TipoInserimento" value="elenco" onClick="Disabilita(false, false, false, false, true, true);" <% If Session("1") = "1" or Session("1") = "" then response.write("checked") end if%>/></div>
    <div id="scelta_2_elenco_radio"><input type="radio" name="TipoInserimento" value="semplice" onClick="Disabilita(true, true, true, true, false, true);" <% If Session("2") = "2" then response.write("checked") end if%> /></div>
    <div id="scelta_3_elenco_radio"><input type="radio" name="TipoInserimento" value="avanzata" onClick="Disabilita(true, true, true, true, true, false); <% If Session("3") = "3" then response.write("checked") end if%> " /></div>
    <div id="txt_titolo_elenco">ELENCO</div>
    <div id="sei">1° :
    <input name="_1" id="_1" type="text" size="70" /></div>
    <div id="quattro">2° :
    <input name="_2" id="_2" type="text" size="70" /></div>
    <div id="due">3° :
    <input name="_3 id="_3" type="text" size="70" /></div>
    <div id="input_4">4° :
    <input name="_4" id="_4" type="text" size="70" /></div>
    <div id="input_5">SEMPLICE
    <textarea name="semplice" id="semplice" cols="66" rows="7" disabled="disabled" ></textarea></div>
    <div id="input_6">AVANZATA
    <textarea name="avanzata" id="avanzata" cols="66" rows="7" disabled="disabled" ></textarea></div>
    <input name="save" type="submit" id="save" value="Salva" />
    </form>
    </body>

    Dopo il caricamento della pagina la situazione è la seguente:
    L'utente trova il primo radiobutton selezionato e le 4 inputbox abilitate in maniera tale da poter effettuare l'inserimento.

    L'utente potrebbe però selezionare il secondo radio button e lo scenario cambia in quanto si disattivano i primi 4 inputbox e l'ultima textarea e rimane attiva solo la prima textarea in maniera che l'utente può inserire i dati all'interno di quest'ultima.

    Per finire l'utente potrebbe scegliere il terzo radiobutton in maniera tale che le prime 4 inputbox e la prima textarea si disattivino ed egli può compilare la terza textarea.

    Ipotesi:
    L'utente sceglie il secondo radio button per cui vedrà disabilitarsi le prime 4 inputbox e l'ultima textarea e compila il form.

    Preme il tasto submit ed invia il form a questo punto partono una serie di controlli in asp che individuano errori nella compilazione del form.

    Ora è in questo momento che si verifica il problema in quanto il secondo radiobutton viene correttamente checkato ma invece che risultare abilitata la prima textarea...... risultano attive le prime 4 inputbox.

    A ragion di tale errore e non essendo pratico di javascript sto chiedendo come fare per rilanciare la funzione disabilita() a seconda che risulti selezionato il primo radiobutton il secondo oppure il terzo.

    Spero di essere stato sufficientemente chiaro questa volta.

    grazie 10000000000000000

  7. #7
    senti facciamo così: una cosa alla volta.
    Tu già sai quale è l'elenco dei tuoi problemi: selezionane uno, quello che ti sembra logicamente il primo, e esponi solo quello.

    Risolto quello, si passa ad integrarlo con gli altri, perchè così francamente si capisce poco: si vede un elenco di problemi non sempre ben descritti (o aperti a interpretazioni...) dove comunichi il tuo senso di urgenza, ma non le priorità.

    Assegna delle priorità ai problemi, e inizia a chiedere aiuto per la risoluzione di uno solo.

    E' un "errore" comprensibile ma molto comune quello di affastellare tutte le esigenze come se si dovesse risolverle d'un colpo tutte assieme.

  8. #8
    Originariamente inviato da br1
    intanto dovresti cambiare tutti gli ID (t'ha mai detto nessuno che non possono essere numerici? )
    ehm... gli id numerici glieli ho postati io qualche giorno fa rispondendo ad una sua domanda. Non sapevo che non si potessero usare e mi sembravano così comodi .
    I'm sorry.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  9. #9
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    Ciao ragazzi.

    Oggi con un po più di calma sono riuscito a venire fuori dal casotto.

    Ho risolto tutto con codice lato server.

    Però ora mi chiedo:
    è proprio un errore grave non utilizzare id numerici?
    Che tipo di problema si potrebbe avere?

    grazie come sempre per il vostro aiuto

  10. #10
    L'id numerico non è una buona idea. Nel tuo caso comunque a ben vedere era preceduto da un carattere underscore: _2, _3
    per cui non era numerico.
    Il concetto è un po' lo stesso delle variabili: non devono cominciare con valori numerici o essere valori numerici. Possono però iniziare con lettere (e _ lo è, per quanto strano sembri) e poi includere numeri.

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.