Objekt mit Cookie dauerhaft ausblenden, bis Änderung erfolgt
Pascal
- javascript
0 Edgar Ehritt0 Pascal0 Edgar Ehritt0 Pascal
Hallo,
ich möchte gerne mithilfe einer Checkbox ein Textfeld ausblenden. Das funktioniert so auch. Allerdings möchte ich auch, dass sich ein Cookie die "Einstellung" merkt, bis das Häkchen aus der Checkbox genommen wird.
Der Code sieht so aus:
<script type="text/javascript">
function readCookie () {
var a = document.cookie;
if ( a == 'checkk=checked')
{window.location = "site1.html"}
else
{window.location = "site2.html"};
}
var input = document.cookie;
if ( input == 'checkk=checkk')
{document.getElementById('datepicker').style.display='none';}
else
{document.getElementById('datepicker').style.display='block';};
}
function writeCookie () {
var input = new Date();
input = new Date(input.getTime() + 30000000000);
document.cookie='checkk=checked; expires=' + input.toGMTString();
}
</script>
<script type="text/javascript">
function showHide (datepicker) {
var style = document.getElementById(datepicker).style
if (style.visibility == "hidden")
style.visibility = "visible";
else
style.visibility = "hidden";
}
</script>
Datum ausblenden <input type="checkbox" id="checkk" onClick="showHide('datepicker'); writeCookie();" />
<div class="demo">
<p>Datum: <input type="text" id="datepicker" style="visibility:visible;"></p>
</div>
Der Cookie "funktioniert" aber nicht. Kann mir jemand helfen?
Gruß
Hallo Pascal,
na Du bist ja ein seltsamer Keksbäcker:
<script type="text/javascript">
function readCookie () {
var a = document.cookie;
if ( a =='checkk=checked')
{window.location = "site1.html"}
else
{window.location = "site2.html"};
}var input = document.cookie;
if ( input =='checkk=checkk')
{document.getElementById('datepicker').style.display='none';}
else
{document.getElementById('datepicker').style.display='block';};
}function writeCookie () {
var input = new Date();
input = new Date(input.getTime() + 30000000000);
document.cookie='checkk=checked; expires='+ input.toGMTString();
}
</script>
Gruß aus Berlin!
eddi
Hallo,
<script type="text/javascript">
function readCookie () {
var a = document.cookie;
if ( a =='checkk=checked')
{window.location = "site1.html"}
else
{window.location = "site2.html"};
}var input = document.cookie;
if ( input =='checkk=checkk')
{document.getElementById('datepicker').style.display='none';}
else
{document.getElementById('datepicker').style.display='block';};
}function writeCookie () {
var input = new Date();
input = new Date(input.getTime() + 30000000000);
document.cookie='checkk=checked; expires='+ input.toGMTString();
}
</script>Gruß aus Berlin!
eddi
Ja, Das habe ich schon als Vorlage gehabt. Vorher stand drin 'link=link1'. Ich dachte, das sind 2 Variablen.
Wie funktioniert das denn? Was muss denn da in meinem Fall rein?
Gruß
Re:
Kann ein wie folgt gesetzter Cookie
document.cookie='checkk=checked; expires=' + input.toGMTString();
jemals den Wert 'checkk=checkk' haben?
Gruß aus Berlin!
eddi
Hallo,
Re:
Kann ein wie folgt gesetzter Cookie
document.cookie='checkk=checked; expires=' + input.toGMTString();
jemals den Wert 'checkk=checkk' haben?
Okay, verstehe, es geht um einen Wert, dachte, das sind IDs.
Wie wärs denn damit?
function readCookie () {
var a = document.cookie;
if ( a == 'checkbox=checked')
{window.location = "site1.html"}
else
{window.location = "site2.html"};
}
var input = document.cookie;
if ( input == 'checkbox=checked')
{document.getElementById('datepicker').style.display='none';}
else
{document.getElementById('datepicker').style.display='block';};
}
function writeCookie () {
var input = new Date();
input = new Date(input.getTime() + 30000000000);
document.cookie='checkbox=checked; expires=' + input.toGMTString();
}
Geht aber auch nicht. Was muss da denn im Fall einer Checkbox für ein Wert rein?
Gruß
Re:
function readCookie () {
var a = document.cookie;
if ( a == 'checkbox=checked')
{window.location = "site1.html"}
else
{window.location = "site2.html"};
}var input = document.cookie;
if ( input == 'checkbox=checked')
{document.getElementById('datepicker').style.display='none';}
else
{document.getElementById('datepicker').style.display='block';};
}function writeCookie () {
var input = new Date();
input = new Date(input.getTime() + 30000000000);
document.cookie='checkbox=checked; expires=' + input.toGMTString();
}
Funktioniert doch völlig korrekt. Vermutlich aber hast Du beim Programmieren nur anderes Cookies zusätzlich noch. Das lässt sich ganz einfach mit `alert(document.cookie)`{:.language-javascript} überprüfen. Daraus resultiert aber ein allgemeines Problem für Deinen Code:
~~~javascript
document.cookie='checkbox=checked'
document.cookie='juxbox=bal'
alert(document.cookie)
Ausgabe: checkbox=checked; juxbox=bal
Vergleicht man das in JavaScript nun mit 'checkbox=checked' stellt man fest, dass es nicht das selbe ist. Die Ausgaben zwischenzeitlich sich mit einem einfachen alert() auszugeben, kann sehr viel Zeit sparen. ;)
Gruß aus Berlin!
eddi