Checkbox IMPORTANTE!!

di il
21 risposte

Checkbox IMPORTANTE!!

Ciao, è possibile scrivere una funzione javascript che controlli l'ordine in cui si selezionano i checkbox e imporre che la selezione avvenga in un certo ordine (es dall'alto verso il basso)

21 Risposte

  • Re: Checkbox IMPORTANTE!!

    Ciao con la proprietà tabindex decidi l' ordine di tabulazione.

    La vita é come un applicativo WEB, prima o poi si impalla!
  • Re: Checkbox IMPORTANTE!!

    Si ma cosi non risolvo il mio problema... io voglio che i check possano essere impostati seguendo un certo ordine.. se tale ordine non viene rispettato il check non puo' essere attivato
    (es con un alert)
  • Re: Checkbox IMPORTANTE!!

    Esatto dati n checkbox deve essere possibile selezionare l'ennesino solo se risulta selezionato l'n-1
  • Re: Checkbox IMPORTANTE!!

    Certo che si può fare !!
    Vuoi una cosa del genere ?
    checkbox 1 attivo
    checkbox 2 disattivato
    checkbox 3 disattivato
    checkbox 4 disattivato

    Clicco su 1 e attivo 2
    clicco su 2 e attivo 3

    Cerchi qualcosa del genere ?

    Nel pomeriggio ti posto qualcosa !!

    Wolly
  • Re: Checkbox IMPORTANTE!!

    Inizialmente siamo nella situazione in cui
    checkbox 1 attivo
    checkbox 2 non attivo
    checkbox 3 non attivo
    checkbox 4 non attivo
    checkbox 5 non attivo
    se checco checkbox 2 ok perche' checkbox 1 è checcato
    se invece tento di checcare checkbox 5 il sistema deve impedirmelo perchè il checkbox precedente non è stato selezionato


    Cosi' il problema è più chiaro?
    Grazie
  • Re: Checkbox IMPORTANTE!!

    I ho fatto questo provalo e dimmi se ti può andare bene al limite facciamo qualche modifica !!

    Può essere migliorato, ma per ora proviamo cosi ....fammi sapere !!


    <html>

    <head>
    <script language="javascript">
    function attiva(x){
    primo="c"+x
    if (document.all[primo].checked) {
    disattiva="c"+(x+1)
    document.all[disattiva].disabled=false;
    }
    else
    {
    for (y=(x+1);y<6;y++){
    elimina="c"+y
    document.all[elimina].checked=false;
    document.all[elimina].disabled=true;
    }
    }
    }
    </script>
    </head>

    <body>
    <p><input type="checkbox" value="ON" name="c1" onclick="attiva(1)"></p>
    <p><input type="checkbox" value="ON" name="c2" onclick="attiva(2)" disabled></p>
    <p><input type="checkbox" value="ON" name="c3" onclick="attiva(3)" disabled></p>
    <p><input type="checkbox" value="ON" name="c4" onclick="attiva(4)" disabled></p>
    <p><input type="checkbox" value="ON" name="c5" disabled></p>
    </body>

    </html>

    Wolly
  • Re: Checkbox IMPORTANTE!!

    Ho fatto qualche modifica per avere esattamente quello che volevo ma per ora puo' andar bene così
    GRAZIE!!!!
    Ho adesso una altra domanda:
    se in origine non so qual è il numero di checkbox (sono legati al risultato di una query) come posso determinare il parametro da passare alla funzione?

    Ancora grazie!
  • Re: Checkbox IMPORTANTE!!

    Ecco la modifica !!

    <script language="javascript">
    function attiva(x){
    var numero=0
    for (a=0;a<document.modulo.length; a++){
    e=document.modulo.elements[a];
    if (e.type== "checkbox"){
    numero=numero+1
    }
    }
    primo="c"+x
    if (document.all[primo].checked) {
    disattiva="c"+(x+1)
    document.all[disattiva].disabled=false;
    }
    else
    {
    for (y=(x+1);y<(numero+1);y++){
    elimina="c"+y
    document.all[elimina].checked=false;
    document.all[elimina].disabled=true;
    }
    }
    }
    </script>

    con i checkbox nel form di nome modulo !!
    supponendo che essi siano in un form !!

    Wolly
  • Re: Checkbox IMPORTANTE!!

    Cosi è + semplice !!
    Ho inserito dei campi per delle prove dovrebbe funzionare !!


    <html>

    <head>
    <script language="javascript">
    function attiva(x){
    v=document.modulo;
    var numero=0
    for (a=0;a<v.length; a++){
    if (v.elements[a].type== "checkbox"){
    numero=numero+1
    }
    }
    primo="c"+x
    if (v[primo].checked) {
    disattiva="c"+(x+1)
    v[disattiva].disabled=false;
    }
    else
    {
    for (y=(x+1);y<(numero);y++){
    elimina="c"+y
    v[elimina].checked=false;
    v[elimina].disabled=true;
    }
    }
    }
    </script>
    </head>

    <body>
    <form name="modulo">
    <p><input type="text" name="T1" size="20"></p>
    <p><input type="checkbox" value="ON" name="c0" onclick="attiva(0)"></p>
    <p><input type="checkbox" value="ON" name="c1" onclick="attiva(1)" disabled></p>
    <p><input type="checkbox" value="ON" name="c2" onclick="attiva(2)" disabled></p>
    <p><input type="checkbox" value="ON" name="c3" onclick="attiva(3)" disabled></p>
    <p><input type="checkbox" value="ON" name="c4" onclick="attiva(4)" disabled></p>
    <p><input type="checkbox" name="c5" value="ON" disabled></p>
    <p><input type="text" name="T2" size="20"></p>
    </form>
    </body>

    </html>

    Wolly
  • Re: Checkbox IMPORTANTE!!

    Il problema è che io ho una tabella con dei checkbox ma non so a priori quale sara' il numero di righe (quindi il numero d checkbox) come faccio quindi a stabilire il paramero da passare alla funzione?
  • Re: Checkbox IMPORTANTE!!

    .. è possibile attribuire il name e il parametro da passare alla functin in maniera dinamica?
    grazie!
  • Re: Checkbox IMPORTANTE!!

    Si si può fare ......lo stavo perfezionando !!

    Ecco qua !!

    <script language="javascript">
    function ecco(x){
    document.write(x)
    }
    function attiva(n){
    v=document.modulo;
    var numero=0
    for (a=0;a<v.length; a++){
    if (v.elements[a].type== "checkbox"){
    numero=numero+1
    if (v.elements[a].name== n){
    var elemento=a;
    }
    }
    }
    if (elemento<numero){
    if (v.elements[elemento].checked) {
    v.elements[elemento+1].disabled=false;
    }
    else
    {
    for (y=elemento+1;y<numero+1;y++){
    v.elements[y].checked=false;
    v.elements[y].disabled=true;
    }
    }
    }
    }
    </script>



    <form name="modulo">
    <p><input type="checkbox" name="ciao" onclick="attiva(this.name)"></p>
    <p><input type="checkbox" name="come" onclick="attiva(this.name)" disabled></p>
    <p><input type="checkbox" name="stai" onclick="attiva(this.name)" disabled></p>
    <p><input type="checkbox" name="io" onclick="attiva(this.name)" disabled></p>
    <p><input type="checkbox" name="bene" onclick="attiva(this.name)" disabled></p>
    <p><input type="checkbox" name="grazie" onclick="attiva(this.name)" disabled></p>
    </form>

    puoi fare un ciclo basta che metti questa funzione ad ogni checkbox:
    onclick="attiva(this.name)"

    anche all'ultimo checkbox poi si ferma da solo, e puoi mettergli il nome che + ti fà comodo !!


    Per oggi basta cosi ......devo andare via !!


    Wolly
  • Re: Checkbox IMPORTANTE!!

    P.S.
    Togli la funzione ecco()
    function ecco(x){
    document.write(x)
    }

    ME ne sono dimenticato !!

    Ci puoi dire a cosa serve questo sistema di checkbox

    Wolly
  • Re: Checkbox IMPORTANTE!!

    Questo codice realizza il funzionamento da me voluto ma in questo caso il numero di checkbox è stabilito in origine

    <html>
    <head>
    <script language="javascript">
    function attiva(x){
    primo="c"+x
    if (document.all[primo].checked) {
    disattiva="c"+(x+1)
    document.all[disattiva].disabled=false;
    }
    else
    {
    z=x+1
    secondo="c"+z
    if (document.all[secondo].checked){
    alert("operazione non permessa");
    document.all[primo].checked=true;}
    else{
    for (y=(x+1);y<6;y++){
    elimina="c"+y
    document.all[elimina].checked=false;
    document.all[elimina].disabled=true;
    }
    }}
    }
    </script>
    </head>

    <body>
    <p><input type="checkbox" value="ON" name="c1" onclick="attiva(1)" checked></p>
    <p><input type="checkbox" value="ON" name="c2" onclick="attiva(2)" checked></p>
    <p><input type="checkbox" value="ON" name="c3" onclick="attiva(3)" checked></p>
    <p><input type="checkbox" value="ON" name="c4" onclick="attiva(4)" checked></p>
    <p><input type="checkbox" value="ON" name="c5" disabled></p>
    </body>

    </html>

    L'ultima variante ceh ho ricevuto non funziona nel caso di desselezione di un check. Mi da il seguente messaggio:
    v.elements[..] is not an object

    Grazie!
    Ciao
Devi accedere o registrarti per scrivere nel forum
21 risposte