Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Работа над сайтом > HTML/DHTML/CSS/JS/VB

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.09.2005, 19:22
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 1  
Ответить с цитированием
Илья К

Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
По умолчанию значения 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
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 2  
Ответить с цитированием
Илья К

Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
А вот этого я совсем не понимаю:
Код:
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". Почему, что не так?

Старый 04.09.2005, 19:54
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 3  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Тебе кто-то обещал, что будет меняться значение "value"? Кто и когда так над тобой пошутил?

P.S. Открой справочник и посмотри, что меняется на самом деле.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 04.09.2005, 19:59
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 4  
Ответить с цитированием
Илья К

Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
ОК, а что скажешь на второе сообщение? Почему в независимости от того, есть ли галочка (даже если не менять значения, выданные при загрузке), у чекбокса значение "on"?

Старый 04.09.2005, 21:08
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 5  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от Илья К
ОК, а что скажешь на второе сообщение? Почему в независимости от того, есть ли галочка (даже если не менять значения, выданные при загрузке), у чекбокса значение "on"?
Еще раз:

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

P.S. Открой справочник и посмотри, что меняется на самом деле.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 04.09.2005, 21:22
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 6  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Почитай, кстати, на досуге...
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 04.09.2005, 21:52
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 7  
Ответить с цитированием
Илья К

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

Старый 04.09.2005, 22:12
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 8  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от Илья К
но по крайней мере что-то.
Я надеялся, что ты обратишь внимание, что там есть готовые примеры с кодом...

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

Цитата:
что опять же не подходит, так как я хочу передать скрипту числовое значение 1 или 0
Вот и передавай. <input type="hidden">.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 04.09.2005, 22:49
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 9  
Ответить с цитированием
Илья К

Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
Да, я посмотрел готовые примеры, но, видимо, не те...
Огромное спасибо за 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')">

Благодарю!

Старый 04.09.2005, 23:21
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 10  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Типа того.

Код:
hisHidden = hisCheckbox.checked ? 1 : 0;
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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