Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.12.2008, 11:57
Интересующийся
Отправить личное сообщение для theYozh Посмотреть профиль Найти все сообщения от theYozh
 
Регистрация: 30.10.2008
Сообщений: 16

Радиокнопки
Всем привет.
Столкнулся с проблемой:
Есть форма с группой радиокнопок
<form name="datasend"   ...bla-bla-bla... >
<input type="radio" name="drawby" value="points" />
<input type="radio" name="drawby" value="lines" />
<input type="radio" name="drawby" value="all" />

И есть необходимость получить в js значение выбранной кнопки (drawby)
Например: drawby=points или drawby=lines или all...

Пытался обратиться через DOM
document.datasend.drawby.value

-дает результат underfined

Помогите
Ответить с цитированием
  #2 (permalink)  
Старый 25.12.2008, 18:24
Интересующийся
Отправить личное сообщение для theYozh Посмотреть профиль Найти все сообщения от theYozh
 
Регистрация: 30.10.2008
Сообщений: 16

нашел решение:
Код:
function radiocheck() {
var currentradio;
currentradio='all';
if (document.datasend.drawby[0].checked) {
currentradio='points';
}
if (document.datasend.drawby[1].checked) {
currentradio='lines';
}
if (document.datasend.drawby[2].checked) {
currentradio='all';
}
}
Ответить с цитированием
  #3 (permalink)  
Старый 25.12.2008, 22:55
Новичок на форуме
Отправить личное сообщение для skinny Посмотреть профиль Найти все сообщения от skinny
 
Регистрация: 25.12.2008
Сообщений: 5

сделал всё как ты написал у меня ничо не работает
мне нужно при загрузке страницы проверить которая из кнопок сейчас выбрана
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2008, 17:08
Интересующийся
Отправить личное сообщение для theYozh Посмотреть профиль Найти все сообщения от theYozh
 
Регистрация: 30.10.2008
Сообщений: 16

Мне это нужно было для АЯКСа и в функции АЯКСа я просто добавил вызов ф-ции radiocheck(); которая была объявлена до этого. А если ее не вызывать, то естественно она работать не будет.
Ответить с цитированием
  #5 (permalink)  
Старый 26.12.2008, 17:12
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от skinny
мне нужно при загрузке страницы проверить которая из кнопок сейчас выбрана
А че при загрузке проверять-то? Какие проставил, те и выбраны.
Ответить с цитированием
  #6 (permalink)  
Старый 26.12.2008, 19:17
Интересующийся
Отправить личное сообщение для theYozh Посмотреть профиль Найти все сообщения от theYozh
 
Регистрация: 30.10.2008
Сообщений: 16

Дополнение:
Если боишься пропустить событие, то добавь в каждый <input type="radio" ...bla-bla-bla.. /> строчку:
onChange="radiocheck();"

Чтоб так выглядело:
<input type="radio" onChange="radiocheck();" ...bla-bla-bla.. />

Последний раз редактировалось theYozh, 26.12.2008 в 19:20. Причина: Дополнение
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2008, 20:34
Новичок на форуме
Отправить личное сообщение для skinny Посмотреть профиль Найти все сообщения от skinny
 
Регистрация: 25.12.2008
Сообщений: 5

спасибо попробую
Ответить с цитированием
  #8 (permalink)  
Старый 26.12.2008, 20:49
Новичок на форуме
Отправить личное сообщение для skinny Посмотреть профиль Найти все сообщения от skinny
 
Регистрация: 25.12.2008
Сообщений: 5

Проблема заключается в следующем:
на страничке несколько радиокнопок. При выборе одной из них нужно сделать некую группу элементов невидимыми а остальные видимыми. Для примера: в зависимости от выбранного пола предлагается заполнить разные пункты анкеты. Не трудно скрыть или отобразить их при нажатии, но данные сохраняються в БД. Поэтому нужно выставить потом так чтобы перезагрузки страницы и обновления радиокнопок скрытые элеметы не появились.
я хорошо знаю php, но вот яваскрипт пока тока начал изучать, так что буду премного признателен за дельный совет.

на данный момент попробовал всё о чём говорилось, но при обновлении странички ничего не происходит.
Ответить с цитированием
  #9 (permalink)  
Старый 27.12.2008, 11:51
Интересующийся
Отправить личное сообщение для theYozh Посмотреть профиль Найти все сообщения от theYozh
 
Регистрация: 30.10.2008
Сообщений: 16

Не понял в этом месте:
Цитата:
потом так чтобы перезагрузки страницы
Но попробую помочь с тем что есть, как понял...
Твоя анкета:
<form name="datasend" action="php.php" method="post">
Ваш пол:<br />
<input type="radio" name="gender" value="male" 
onSelect="
document.getElementById('for_male').style.display='block';
document.getElementById('for_female').style.display='none';
"/>Мужской<br />

<input type="radio" name="gender" value="female" 
onSelect="
document.getElementById('for_male').style.display='none';
document.getElementById('for_female').style.display='block';
"/>Женский<br />

<div id="for_male" style="display:none;">
<!-- Здесь элементы формы для мужчины -->
</div>

<div id="for_female" style="display:none;">
<!-- Здесь элементы формы для женщины -->
</div>
<input type="submit" value="Поехали!" />
</form>


PHP тогда будет выглядеть примерно так:
$gender=$_POST['gender'];
switch ($gender) {
	case 'male':
		/* операции для мужского пола */
		break;
	case 'female':
		/* опреации для женского пола */
		break;
	default:
		/* опрации на случай если пол был не указан, 
или указан не правильно. 
Несмотря на радио кнопки такое бывает, 
например если сайт обслуживает 
несколько рабочих станций. 
Кто знает как там запрограммировали 
рабочую станцию, мы лучше подстрахуемся. */
		break;
}


Вот так. Спрашивай, может чего не ясно?
Ответить с цитированием
  #10 (permalink)  
Старый 27.12.2008, 12:26
Новичок на форуме
Отправить личное сообщение для skinny Посмотреть профиль Найти все сообщения от skinny
 
Регистрация: 25.12.2008
Сообщений: 5

всё разобрался и всё заработало
добавил событие
Код:
onChange="radiocheck();"
в тег
Код:
<body>
вот так
Код:
<body onChange="radiocheck();" >
Теперь возникла другая проблема

если слоёв больше одного то пропадает только 1

например есть в анкете несколько свойств они не могут быть объединены в 1 слой так как находятся в разных разделах
но тогда скрипт отрабатывает только по первому встретившемуся слою
как сделать так чтобы он работал по всем одинаковым слоям?

Последний раз редактировалось skinny, 27.12.2008 в 14:02.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск