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

    [jQuery] Dati Nmila checkbox al click selezionabili solo Xcheckbox adiacenti

    Come da criptico oggetto ho questo infimo problema di usabilità.
    Rendendo generico il problema ho N checkbox tutti con ID univoco.
    Ne posso selezionare solo X dove X è sempre maggiore di N.
    Quello che vorrei è, una volta cliccato sul primo checkbox, poter selezionare solo i restanti N-1 checkbox adiacenti a quello cliccato.

    Esempio, ho questi checkbox:
    [1] [2] [3] [4] [5] [6]

    Ne posso selezionare al massimo 2

    Clicco sul numero 3.
    I restanti selezionabili devono essere:
    [-] [2] [X] [4] [-] [-]

    ecc....
    E' un casino?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    cosi http://webandylab.altervista.org/box.html dovrebbe andare bene.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    cosi http://webandylab.altervista.org/box.html dovrebbe andare bene.
    Cavolo.. grande!
    Ho visto solo adesso che c'è un bug concettuale ma solo perchè sono stato io a non valutarlo.
    Se devo selezionarli al massimo 3 e clicco sul numero 1, devono essere selezionabili anche il 2 e il 3 e non solo il 2 che è adiacente.
    Quindi, se ne devo selezionare 4 e seleziono il numero 1 (o 7) devono diventare selezionabili il 2, 3 e 4.
    Se seleziono il numero 2 devono essere selezionabili il numero 1, 3 e 4 e così via.
    E ultima cosa, dovrei parametrizzare il numero massimo di chekbox selezionabili e non solo quindi gli adiacenti (in questo modo potrei selezionarli al massimo 3)
    eheh casino eh?
    Ovviamente sto provando adesso a farlo io e ti ringrazio

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da PazZII
    Cavolo.. grande!
    Ho visto solo adesso che c'è un bug concettuale ma solo perchè sono stato io a non valutarlo.
    Se devo selezionarli al massimo 3 e clicco sul numero 1, devono essere selezionabili anche il 2 e il 3 e non solo il 2 che è adiacente.
    Quindi, se ne devo selezionare 4 e seleziono il numero 1 (o 7) devono diventare selezionabili il 2, 3 e 4.
    Se seleziono il numero 2 devono essere selezionabili il numero 1, 3 e 4 e così via.
    E ultima cosa, dovrei parametrizzare il numero massimo di chekbox selezionabili e non solo quindi gli adiacenti (in questo modo potrei selezionarli al massimo 3)
    eheh casino eh?
    Ovviamente sto provando adesso a farlo io e ti ringrazio
    Buon lavoro di nulla
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da PazZII
    Cavolo.. grande!
    Ho visto solo adesso che c'è un bug concettuale ma solo perchè sono stato io a non valutarlo.
    Se devo selezionarli al massimo 3 e clicco sul numero 1, devono essere selezionabili anche il 2 e il 3 e non solo il 2 che è adiacente.
    Quindi, se ne devo selezionare 4 e seleziono il numero 1 (o 7) devono diventare selezionabili il 2, 3 e 4.
    Se seleziono il numero 2 devono essere selezionabili il numero 1, 3 e 4 e così via.
    E ultima cosa, dovrei parametrizzare il numero massimo di chekbox selezionabili e non solo quindi gli adiacenti (in questo modo potrei selezionarli al massimo 3)
    eheh casino eh?
    Ovviamente sto provando adesso a farlo io e ti ringrazio
    Versione box adiacenti, ma il primo (1) e l'ultimo (7) si possono spuntare 2 e 3 o 5 e 6 http://webandylab.altervista.org/box.html
    Versione max 3 box indipendenti http://webandylab.altervista.org/box-max.html
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6

    Ci stavamo ragionando insieme ad un mio amico fino ad un'ora fa e siamo arrivati a questo punto.
    codice:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>jquery box</title>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
    $(function(){
    	
       var quanti = 4;  // quanti checkbox abilitare (tranne quello selezionato!)
       var quanti_primadopo = quanti / 2;
    	var selezionati = 0;
    	
        $(".box").each(function(i){
    		$(this).live('click', function(){
    		if($('input:checkbox').is(':checked') && selezionati<1){
    			
    			selezionati++
    			$('input:checkbox').not(':checked').attr("disabled",true)  // disabilita tutti i checkbox
    			$(this).removeAttr("disabled")  // abilita il checkbox corrente
    			
    			// scorre i precedenti
    			overflow = 0;
    			curcheck = $(this);
    			for (k=0; k < quanti_primadopo; k++){
    			   curcheck = curcheck.prev();
    			   if (curcheck.length)
    					curcheck.removeAttr("disabled");
    				else
    				   overflow++;
    		   }
    
    			// scorre i successivi
    			overflow2 = 0;
    			curcheck = $(this);
    			for (k=0; k < quanti_primadopo + overflow; k++){
    			   curcheck = curcheck.next();
    			   if (curcheck.length)
    					curcheck.removeAttr("disabled")
    				else
    				   overflow2++;
    		   }
    
    		   if (overflow2){
    				// scorre nuovamente i precedenti
    				overflow = 0;
    				curcheck = $(this);
    				for (k=0; k < quanti_primadopo + overflow2; k++){
    				   curcheck = curcheck.prev();
    			   	if (curcheck.length)
    						curcheck.removeAttr("disabled");
    					else
    					   overflow++;
    		   	}
    		   }
    
    		}else if($('input:checkbox:checked').length==0){
    			$('input:checkbox').removeAttr("disabled")  // abilita tutti i checkbox
    			selezionati=0
    		}
    	})
    	})
    });
    </script>
    </head>
    
    <body>
    1<input name="uno" class="box" id="uno" type="checkbox" value="">
    2<input class="box" name="due" id="due" type="checkbox" value="">
    3<input class="box" name="tre" id="tre" type="checkbox" value="">
    4<input class="box" name="quattro" id="quattro" type="checkbox" value="">
    5<input class="box" name="cinque" id="cinque" type="checkbox" value="">
    6<input class="box" name="sei" id="sei" type="checkbox" value="">
    7<input class="box" name="sette" id="sette" type="checkbox" value="">
    8<input class="box" name="otto" id="otto" type="checkbox" value="">
    9<input class="box" name="nove" id="nove" type="checkbox" value="">
    </body>
    </html>
    Appi pazienza se posto il codice ma non sapevo dove uppare il file.
    In pratica è come il tuo "Versione box adiacenti, ma il primo e l'ultimo si possono spuntare 2 e 3 o 5 e 6 "
    Lo posto qua per far vedere implementazioni diverse risultati uguali.
    Grazie!!!!

    p.s.
    Visto che è stimolante come problema oggi abbiamo trovato un'altra piccola aggiunta da inserire che sarebbe proprio la ciliegina sulla torta.
    I box selezionati non devono avere vuoti gli uni rispetto agli altri.
    Cioè alla fine non posso avere selezionato 1, 3, 4, 5 saltando il 2 (è un esempio per far capire).
    Noi ci ragioniamo, vediamo che viene fuori

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da PazZII


    p.s.
    Visto che è stimolante come problema oggi abbiamo trovato un'altra piccola aggiunta da inserire che sarebbe proprio la ciliegina sulla torta.
    I box selezionati non devono avere vuoti gli uni rispetto agli altri.
    Cioè alla fine non posso avere selezionato 1, 3, 4, 5 saltando il 2 (è un esempio per far capire).
    Noi ci ragioniamo, vediamo che viene fuori
    Io passo, ma vi faccio i mie migliori auguri
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Originariamente inviato da cavicchiandrea
    Io passo, ma vi faccio i mie migliori auguri
    grazie di tutto, hai fatto anche troppo.

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.