PDA

View Full Version : [JavaScript] Cambiare checkbox


ceribbo
22-10-2015, 16:47
Salve a tutti ragazzi, sto realizzando un form per un applicazione web e non riesco a risolvere questo problema:
La prima scelta nel form è una select su diversi argomenti.
La seconda scelta invece è una lista di checkbox. Il problema è che questa lista di checkbox deve cambiare dinamicamente in base alla scelta della precedente select.

Avevo pensato di inserire tutti i checkbox possibili e in base alla scelta nel select concedere all'utente di cliccare solamente sui determinati checkbox che ineriscono alla scelta precedente.

Vorrei però far si che una volta fatta la prima scelta i checkbox non inerenti alla scelta vengano cancellati.
come posso creare questa funzione javascript?
anche perchè non saprei come selezionare tutti i checkbox in una volta sola nel caso nasconderli prima tutti e poi far vedere solamente quelli desiderati

Don[ITA]
23-10-2015, 08:12
Se conosci jQuery, puoi prendere spunto da qui (http://jsbin.com/gifiloniwu/edit?html,js,output) per trovare una soluzione al tuo problema

OoZic
24-10-2015, 01:40
http://jsbin.com/jusatefaqo/edit?html,js,output

ti ho commentato tutto il codice, usando jQuery si tratta di qualche riga.

una volta che hai capito come funziona lo adatti per il tuo esempio.

OoZic
25-10-2015, 21:09
A proposito di non fare i "compiti a casa"......

be' per farlo andare col suo codice deve cmq cambiare un po' di roba, a quel punto se non e' stupido cerca di capire cosa sta succedendo :D

ceribbo
25-10-2015, 23:44
Ragazzi grazie mille :))))) scusate se rispondo solo ora ma è stato un weekend molto pesante.
comunque credo che opterò per la soluzione offertami da OoZic che mi sembra la più pulita.
Grazie ancora tutti quanti :D

ceribbo
26-10-2015, 23:47
Ragazzi sono riuscito senza problemi a capire ed eseguire qualche modifica aggiungendo value e un campo nascosto per valore di default.
http://jsbin.com/ragudizape/edit?html,js,output
Quindi il mio dubbio è stato pienamente risolto.
Ora però ne è sorto un altro xD.

Non ho mai usato il framework jQuery in vita mia e non sono un asso in JavaScript ma piano piano sto imparando.
Normalmente per usare una funzione in javascript la scrivo in un file .js e poi mi basta importare il file nella head richiamando poi la funzione come attributo tramite evento.
Con jQuery mi sono accorto che è un pò differente, ho provato a trasferire la funzione mostraCheckbox nel file con le altre funzioni in javascript e poi richiamarla nell'attributo onchange della select ma non sembra funzionare.
Ho notato anche che c'è l'import per il framework ma non so come
So che è una banalità ma vorrei rendere il tutto più modulare possibile e in caso mi servisse riusare questa funzione richiamerei la funzione senza doverla copiare.
grazie ancora per la disponibilità :)

OoZic
27-10-2015, 12:43
Consiglio di mettere tutto alla fine del tuo documento prima della chiusura del body, 2 grossi motivi: 1) il dom è caricato e quindi hai accesso a tutti gli elementi se necessario senza usare il famoso $(document).ready e 2) migliori le performance del tuo sito non avendo un elemento bloccante in head


Sent from my iPhone using Tapatalk

ceribbo
27-10-2015, 15:56
ottimo grazie mille. sono riuscito a metterla nel file .js, ma se per esempio volessi che la funzione venga eseguita al caricamento della pagina, dato che c'è una select preselezionata. La soluzione propostami da OoZic funziona con l'evento onchange della select, per farlo dovrei usare l'evento onload? e dovrei quindi duplicare il codice jquery cambiando il tipo di evento?

OoZic
27-10-2015, 16:09
Si, ma se metti tutto infondo la pagina è già caricata come ho detto quindi non serve onload/ready o simili.

Raggruppa quel che deve fare in una funzione che chiami immediatamente e poi la metti anche come callback del evento change


Sent from my iPhone using Tapatalk