Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   HTML/DHTML/CSS/JS/VB (http://www.flasher.ru/forum/forumdisplay.php?f=66)
-   -   значения Checkbox'ов и отправка формы (http://www.flasher.ru/forum/showthread.php?t=68749)

Илья К 04.09.2005 19:22

значения Checkbox'ов и отправка формы
 
Всем привет!
Передаю параметры GET'ом. CHECKBOX'ы проверяю перед отправкой ява-скриптом:
Код:

function check_checkbox(form_name)
{
        for(i=0; i<document.forms[form_name].length; i++)
        {
                if(document.forms[form_name].elements[i].type == "checkbox")
                {
                        if(document.forms[form_name].elements[i].checked)
                        {
                                document.forms[form_name].elements[i].value = 1;
                                alert(document.forms[form_name].elements[i].value);
                        }
                        else
                        {
                                document.forms[form_name].elements[i].value = 0;
                                alert(document.forms[form_name].elements[i].value);
                        }
                }
        }
}

Проблема в том, что неотмеченные чекбоксы почему-то не передаются. Их просто нет в адреной строке строке. Если функцию не использовать, то все в порядке, но тогда соответствующие параметр принимают значения "on" и "off", а обрабатывать это на стороне сервера не хочется...
Знает кто-нибудь, что тут можно сделать?
Спасибо.

Илья К 04.09.2005 19:51

А вот этого я совсем не понимаю:
Код:

function check_checkbox(form_name)
{
        for(i=0; i<document.forms[form_name].length; i++)
        {
                if(document.forms[form_name].elements[i].type == "checkbox")
                {
                        if(document.forms[form_name].elements[i].value == "on")
                        {
                                //document.forms[form_name].elements[i].value = 1;
                                //alert(document.forms[form_name].elements[i].value);
                                alert("on");
                        }
                        else
                        {
                                //document.forms[form_name].elements[i].value = 0;
                                //alert(document.forms[form_name].elements[i].value);
                                alert("off");
                        }
                }
        }
}

Поставлена ли галочка или нет, я получаю алерт "on". Почему, что не так?

Crazy 04.09.2005 19:54

Тебе кто-то обещал, что будет меняться значение "value"? Кто и когда так над тобой пошутил? :)

P.S. Открой справочник и посмотри, что меняется на самом деле.

Илья К 04.09.2005 19:59

ОК, а что скажешь на второе сообщение? Почему в независимости от того, есть ли галочка (даже если не менять значения, выданные при загрузке), у чекбокса значение "on"?

Crazy 04.09.2005 21:08

Цитата:

Сообщение от Илья К
ОК, а что скажешь на второе сообщение? Почему в независимости от того, есть ли галочка (даже если не менять значения, выданные при загрузке), у чекбокса значение "on"?

Еще раз:

Цитата:

Тебе кто-то обещал, что будет меняться значение "value"? Кто и когда так над тобой пошутил?

P.S. Открой справочник и посмотри, что меняется на самом деле.

Crazy 04.09.2005 21:22

Почитай, кстати, на досуге...

Илья К 04.09.2005 21:52

Спасибо за линк. Прочесть все хоть и не прочел (английский...), но по крайней мере что-то. Я обратил внимание на следующее: если checkbox отмечен, передается "on" (что мне не подходит), если же нет, то этот параметр просто игнорируется (что опять же не подходит, так как я хочу передать скрипту числовое значение 1 или 0).
Итак:
Проблема 1: Заставить броузер(?) передавать checkbox в нужном виде.
Проблема 2: Заставить броузер(?) передавать неотмеченные checkbox'ы.
Может, есть идеи?

Crazy 04.09.2005 22:12

Цитата:

Сообщение от Илья К
но по крайней мере что-то.

Я надеялся, что ты обратишь внимание, что там есть готовые примеры с кодом... :)

Цитата:

Я обратил внимание на следующее: если checkbox отмечен, передается "on" (что мне не подходит), если же нет, то этот параметр просто игнорируется
Это было достаточно прочесть в любой пристойной книжке -- это не требует экспериментов.

Цитата:

что опять же не подходит, так как я хочу передать скрипту числовое значение 1 или 0
Вот и передавай. <input type="hidden">.

Илья К 04.09.2005 22:49

Да, я посмотрел готовые примеры, но, видимо, не те... :)
Огромное спасибо за hidden -- не подумал я об этом... Тогда все, конечно, просто, что-то в духе:

*JS*
function hisFunction(hisParameter)
{
if(bla-bla-bla...checked)
{
hisHidden=1;
}
else
{
hisHidden=0;
}
}
*HTML*
<input name=hisHidden type="hidden">
<input name=hisCheckbox type="checkbox" onblur="hisFunction('hisHidden')">

Благодарю! :)

Crazy 04.09.2005 23:21

Типа того.

Код:

hisHidden = hisCheckbox.checked ? 1 : 0;


Часовой пояс GMT +4, время: 02:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.