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

    Problemi con la Checkbox

    Buonasera, ho realizzato un sito web per un negozio di prodotti cosmetici di una mia amica per poterli vendere anche online. Fino a un mese fa tutto bene, ma quando ho cominciato ad aggiungere codice al sito per poterlo rendere navigabile anche dal cellulare tramite la tecnica del @media screen, ho trovato un tutorial per poter realizzare un menu a scomparsa senza usare gli script, tutto con html5 e css3, e funziona perfettamente. Questo tutorial prevede la creazione di una checkbox che deve rimanere sempre nascosta e visualizza il menu con le tre righe orizzontali.
    Nella pagina delle prenotazioni c'è un'altra checkbox, realizzata da me, per accettare l'informativa sulla privacy e procedere con l'ordinazione. Con la creazione del menu a scomparsa ho scoperto che la checkbox della privacy era diventata invisibile. Ho dato un id a quella checkbox e ho risolto il problema settandola come "display: block".
    Ora emerge un altro problema: sia che la selezioni che se la deselezioni mi compare lo stesso messaggio di errore. Questo è il codice per la checkbox:

    <script type="text/javascript">
    function GetCheckedState () {
    var consensoValue = document.getElementById ("consenso");
    var isChecked = consensoValue.checked;
    isChecked = (isChecked)? "Hai dato il tuo consenso al trattamento dei dati. Procedi con l'ordine." : "Attenzione. Non hai dato il tuo consenso al trattamento dei dati. Devi dare il tuo consenso per poter procedere con l'ordine.";
    alert ("PARAFARMACIA *******: " + isChecked);
    }
    </script>

    <label id="consenso">Informativa sulla privacy:
    * </label>
    <div id="consenso2">
    <input type="checkbox" name="consenso"
    id="consenso" required="campo obbligatorio" onclick="GetCheckedState ();" style="display:block; float: left;"/> <label>Ho letto l'<a href="../../informativa.html">informativa sulla privacy</a> del sito e
    <br/>fornisco il consenso al trattamento dei dati.</label>
    </div>
    <script>var consensoValue = document.getElementById('consenso');</script>

    Perché prima funzionava e ora mi compare sempre, anche quando la seleziono, il messaggio di errore che mi dice di non aver dato il mio consenso? C'è qualche errore nel codice?

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,435
    Ciao e benvenuto, la prima cosa che salta all'occhio è che stai usando lo stesso id per definire elementi diversi all'interno dello stesso documento.
    codice:
    <label id="consenso">
    ...
    <input type="checkbox" name="consenso" id="consenso"
    Gli id devono essere necessariamente univoci. Il metodo getElementById() infatti va a selezionare solo il primo elemento che viene trovato con tale id.

    Questo:
    codice:
    document.getElementById("consenso")
    ti seleziona l'elemento label che è chiaramente l'elemento sbagliato.

    Correggi gli id assicurandoti di assegnare dei valori diversi.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  3. #3
    Grazie mille, problema risolto! Certo che hai un occhio da falco! Era proprio questo che faceva funzionare male la checkbox. Grazie mille. Come si mette "risolto"?

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,435
    Bene

    Come si mette "risolto"?
    Non è usanza di questo forum mettere "risolto", puoi lasciare tranquillamente così.

    Buon proseguimento
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

Tag per questa discussione

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 © 2019 vBulletin Solutions, Inc. All rights reserved.