ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Запоминание состояния чекбокса через куки

 

596
Сергей @Князь_Пипецкий
В чате установлен звук на сообщения функцией zvukmsgno=1

По умолчанию звук включен.

Хочу сделать запоминание состояния этого чекбокса через куки.

Вот так:

<script language="JavaScript" type="text/javascript">
var checked=parent.getcookie("zvukmsgno=1")==1?"checked":"";
document.write('<input type=checkbox name="zvukmsgno=1" onclick="if(this.checked) {parent.setcookie(this.name,1)} else {parent.setcookie(this.name,0)}" title="Вкл-выкл" '+checked+'>')
</script>

В результате - состояние то запоминается.
Но звук при установке галочки в чекбокс не отключается.

Помогите разобраться, где ошибка?

2615
Сергей @Pegass
<script language="JavaScript" type="text/javascript">
var checked='';
if (parent.getcookie("zvukmsg")) {checked=parent.getcookie("zvukmsg")==1?"checked":""; parent.zvukmsgno=parent.getcookie("zvukmsg");}
else checked='checked';
document.write('<input type=checkbox name="zvukmsg" onclick="if(this.checked) {parent.setcookie(this.name,0);parent.zvukmsgno=0;} else {parent.setcookie(this.name,1);parent.zvukmsgno=1;}" title="вкл/откл звуки входящих сообщений" '+checked+'>')
</script>

Отредактировано Pegass - 20.02.2013
596
Сергей @Князь_Пипецкий
Точно!
Протупил...... не zvukmsgno а zvukmsg

Спасибо!

2615
Сергей @Pegass
ну нет, ты много где протупил)))

твой скрипт разбираем
<script language="JavaScript" type="text/javascript">
var checked=parent.getcookie("zvukmsgno=1")==1?"checked":"";
document.write('<input type=checkbox name="zvukmsgno=1" onclick="if(this.checked) {parent.setcookie(this.name,1)} else {parent.setcookie(this.name,0)}" title="Вкл-выкл" '+checked+'>')
</script>

name="zvukmsgno=1" - мама роди меня обратно)))) знак равенства в имени это жестоко
var checked=parent.getcookie("zvukmsgno=1")==1?"checked":""; не всякий браузер это съест надо проверять существование parent.getcookie("zvukmsgno=1"), ну и желательно таки сначала определять переменную а потом присваивать ей неоднозначные значения;
ну и в твоём скрипте переменная zvukmsgno не меняет своё значение в зависимости от куки

596
Сергей @Князь_Пипецкий
Чуток пришлось переделать, но работает.
Благодарю!

596
Сергей @Князь_Пипецкий
Pegass пишет:

ну нет, ты много где протупил)))

твой скрипт разбираем
<script language="JavaScript" type="text/javascript">
var checked=parent.getcookie("zvukmsgno=1")==1?"checked":"";
document.write('<input type=checkbox name="zvukmsgno=1" onclick="if(this.checked) {parent.setcookie(this.name,1)} else {parent.setcookie(this.name,0)}" title="Вкл-выкл" '+checked+'>')
</script>

name="zvukmsgno=1" - мама роди меня обратно)))) знак равенства в имени это жестоко
var checked=parent.getcookie("zvukmsgno=1")==1?"checked":""; не всякий браузер это съест надо проверять существование parent.getcookie("zvukmsgno=1"), ну и желательно таки сначала определять переменную а потом присваивать ей неоднозначные значения;
ну и в твоём скрипте переменная zvukmsgno не меняет своё значение в зависимости от куки

Скрипт кстати не мой 😀 на форуме нашел .....