Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    4

    Nascondere parte di un elenco alla seleziona di un checkbox

    Buongiorno a tutti!
    sono nuovo di questo forum, e chiedo a voi un consiglio su come editare correttamente una funziona javascript.
    Sono assolutamente alle prime armi...

    Sul mio sito ho il seguente codice html che mi da una lista di "vettori" selezionabili.

    codice HTML:
    <ul id="couriersList">
    <li>
    <input type="radio" value="79_42" name="courierID" onclick="sendData(this.form);" style="width:auto;">
    <strong>CORRIERE ESPRESSO</strong>&nbsp;€ 9,36<span>BRT SPA&nbsp;Consegna espressa in 24-72 ore in tutta Italia dal momento dell'evasione.</span>
    </li>
    <li>
    <input type="radio" value="83_29" name="courierID" onclick="sendData(this.form);" style="width:auto;">
    <strong>CORRIERE ESPRESSO</strong>&nbsp;€ 5,50<span>ExtraLarge:&nbsp;Consegna espressa in 24-48 ore in tutta Italia dal momento dell'evasione.</span>
    </li>
    <li>
    <input type="radio" value="83_43" name="courierID" onclick="sendData(this.form);" style="width:auto;">
    <strong>CORRIERE ESPRESSO</strong>&nbsp;€ 8,35<span>SDA&nbsp;Consegna espressa in 24-72 ore in tutta Italia dal momento dell'evasione.</span>
    </li>
    <li>
    <input type="radio" value="9085_8" name="courierID" onclick="sendData(this.form);" style="width:auto;">
    <strong>RITIRO PRESSO NOSTRO MAGAZZINO</strong>&nbsp;€ 0,00<span>Ritiro a cura del cliente:&nbsp;<p><u>Previa nostra comunicazione di merce pronta</u>, potrai presentarti personalmente presso il NOSTRO magazzino.</p></span>
    </li>
    </ul>
    Quello che vorrei fare è nascondere di default alcuni vettori (tutto il tag <li>) per poi renderli visibili alla spunta di una checkbox.

    Es.
    codice HTML:
    <input type="checkbox">Visualizza tutto</input>
    Sulla lista vettori non posso modificare in alcun modo l'html che è generato così dal gestionale e-commerce. La variabile univoca a cui vorrei fare riferimento è l'attributo "value" nel tag <input> che è identificativo di ciascun vettore proposto.

    Es. Nascondi di default i vettori con attributo value="79_42" e value="83_43".
    Alla spunta della checkbox rendi visibile tutta la lista.

    Qualcuno saprebbe aiutarmi?

    Fabio

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Ciao Fabio,
    se sei pratico di jQuery puoi utilizzare la funzione each sull'elemento ul in questo modo verifichi uno per uno i valori.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    4
    Ciao, purtroppo sono proprio alle prime armi e non saprei da dove partire

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    4
    Ciao, ho fatto un po' di scuola
    ma ora mi ritrovo un problema che non riesco a risolvere.

    Sull' html che ho postato sopra, ho aggiunto solo un link:
    codice HTML:
    <a id='lista_completa' href='javascript:view();'>Visualizza tutti i corrieri</a>
    poi ho applicato il seguente codice jquery:

    codice:
    <script type="text/javascript">
    
    
    $(function() {
       $("#couriersList input[value='79_42']").closest("li").css("display","none");
       $("#couriersList input[value='83_43']").closest("li").css("display","none");
    });
    
    
    
    
    function view() {
    $("#couriersList input[value='79_42']").closest("li").css("display","block");
    $("#couriersList input[value='83_43']").closest("li").css("display","block");
    $("#lista_completa").replaceWith("<a id='lista_nascosta' href='javascript:nascondi();'>Torna ai corrieri consigliati</a>");
    }
    
    
    function nascondi() {
    $("#couriersList input[value='79_42']").closest("li").css("display","none");
    $("#couriersList input[value='83_43']").closest("li").css("display","none");
    $("#lista_completa").replaceWith("<a id='lista_completa' href='javascript:view();'>Visualizza tutti i corrieri</a>");
    }
    
    
    </script>
    Il problema è che al click di ciascun input l'html rimanda ad un reload della pagina:
    codice HTML:
    <input type="radio" value="83_29" name="courierID" checked="checked" onclick="sendData(this.form);" style="width:auto;">
    L'html quindi mi si ri-aggiorna in modo dinamico in base al click dell'input e il codice jquery per nascondere gli elementi non viene più applicato.
    Come posso fare per richiamare il codice ogni qual volta che venga selezionato un input?

    Non sono riuscito a trovare nessuna soluzione nella guida.

    Grazie,

    Fabio

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    sendData che fa? non lo vedo...
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    4
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    sendData che fa? non lo vedo...
    Fa parte dell'HTML che non sono in grado di gestire essendo il sito NON open source.
    Manda comunque i dati al carrello ed aggiorna i dati in pagina.
    Penso sia quello che, riaggiornando l'html, crea il problema.

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.