PDA

Просмотр полной версии : значения Checkbox'ов и отправка формы


Илья К
04.09.2005, 19:22
Всем привет!
Передаю параметры 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
Почитай, кстати, на досуге (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_fp2003_ta/html/odc_fpValidatingFormControlsUsingJavaScript.asp)...

Илья К
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;

DimZ
07.09.2005, 13:13
а как ты из флеша передаешь пареметры чек боксам?

Илья К
08.09.2005, 06:15
а как ты из флеша передаешь пареметры чек боксам?
С флэшом это никак не связано.