2017-12-28 29 views
0

Ich habe einen Bildschirm mit Kontrollkästchen. Wenn das Label angeklickt wird, öffnet sich ein neues Fenster mit Text und einer Zustimmungstaste. Sobald der Benutzer auf die Schaltfläche "Zustimmung" klickt, wird ein Cookie mit einer eindeutigen ID gesetzt, die auf das Kontrollkästchen verweist. Wie kann ich dieses Kontrollkästchen aktivieren, wenn der Cookie 1 entspricht? Code ist unten.Beim Klicken, Cookie setzen und Kontrollkästchen aktivieren

document.cookie = "doc_35_readit=0"; 
$('#have_read_agreement').on('click', function() {      
    document.cookie = "doc_35_readit=1"; 
}); 

Jetzt, wenn das Fenster geschlossen ist, bin ich mir nicht sicher, wie Sie das Kontrollkästchen aktivieren. So etwas vielleicht?

if (cookie("doc_35_readit") == "1") { 
    $(".doc_35_readit").click(); 
} 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<!-- Initial checkbox: --> 
    <input type="checkbox" 
    id="agreementChecker-0" 
    name="agreeCheck-0" 
    value="35" 
    class="mandatory agreeChecker doc_35_readit"/> 

<!-- New Window opens with text, button at bottom: --> 
    <p align="center" id="have_read_agreement" style="text-align:center;font-size:20px;"> 
    <a href="javascript:window.close()" class="btn-read">I have read this agreement and accept all terms and conditions.</a> 
    </p> 

Antwort

0

Sie das Attribut checked Eingang einstellen: Checkbox Element wahr oder falsch, wenn Sie entweder geprüft wollen oder nicht markiert entsprechend.

$('input[name=test]').attr('checked', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="test" />

0

Um das Cookie von Namen, den Sie benötigen erhalten Sie Ihre eigene get Funktion wie zu erstellen:

function getCookie(cname) { 
    var name = cname + "="; 
    var decodedCookie = decodeURIComponent(document.cookie); 
    var ca = decodedCookie.split(';'); 
    for(var i = 0; i <ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') { 
      c = c.substring(1); 
     } 
     if (c.indexOf(name) == 0) { 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 

dass die Cookies analysieren wird und gibt Ihnen die Möglichkeit, von ihnen zu wählen Name wie:

getCookie("doc_35_readit") 

Dann funktioniert Ihre Bedingung wie:

if (getCookie("doc_35_readit") == "1") { 
    $(".doc_35_readit").click(); 
} 
0

Dies ist sehr möglich, nur mit nativem Javascript zu tun.

sondern weil Sie nicht Experte scheint Cookies zu erstellen, und Sie verwenden jquery

empfehle ich Ihnen dieses Plugin zu verwenden: https://github.com/js-cookie/js-cookie

dann können Sie dieses Beispiel versuchen:

<button id="delete">delete cookie</button> 
<button id="display">display cookie</button> 
<textarea></textarea> 

<div id="modal"><h1>this will display only if user not accept yet</h1>are you agree with our ToS? <input type="checkbox" id="agreementChecker-0" name="agreeCheck-0" value="35" class="mandatory agreeChecker doc_35_readit"></div> 

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 
<script src="https://cdn.jsdelivr.net/npm/[email protected]/src/js.cookie.min.js"></script> 

<script> 
$(function(){ 


    $('#agreementChecker-0').change(function(){ 
     if($(this).prop('checked')){ 
      Cookies.set('doc_35_readit', 1); 
      $('#modal').hide(); 
     }else{ 
      Cookies.set('doc_35_readit', 0); 
      $('#modal').show(); 
     } 
    }); 

    if(Cookies.get('doc_35_readit')== 1){ 
     $('#modal').hide(); 
    } 

    $('#display').click(function(){ 
     var c = (Cookies.get('doc_35_readit') ==undefined) ? 'not found':Cookies.get('doc_35_readit'); 
     $('textarea').val(c); 
     console.log(Cookies.get()); //show all possible cookie in console 
    }); 

    $('#delete').click(function(){ 
     Cookies.remove('doc_35_readit'); 
     $('#modal').show(); 
    }); 
}); 
</script> 

PS: Sie können versuchen, Ihre Seite zu aktualisieren, um zu sehen, ob Ihre Cookies bereits gesetzt sind oder nicht

Verwandte Themen