Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Radio переключатели / 20 сообщений из 20, страница 1 из 1
30.11.2009, 22:52:37
    #36339898
AndViic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Люди помогите, пожалуйста реализовать...

Код: plaintext
1.
2.
3.
4.
5.
<label><input type="radio" name="Radio1" value="1" id="RadioGroup1_0" />Переключатель1</label>
<label><input type="radio" name="Radio1" value="2" id="RadioGroup1_1" />Переключатель2</label>	

<div id="D1"></div>
<div id="D2"></div>

1. Как сделать так, что бы при выборе первого радиопереключателя выводился первый div (D1), а при выборе второго выводился второй div (D2)? Причем автоматом, без кнопки submit.
2. С помощью куки запоминалось последнее положение.
3. Для тех кто впервые на сайте и куков еще нет - по умолчанию включен переключатель1

Хочу реализовать механизм выбора свернутой и развернутой ленты новостей. Файл в котором это делаю прикреплю на всякий случай, а в нем укажу нужные div-ы

Я, к сожалению в JavaScript и PHP несилен, а время поджимает. Буду очень благодарен))
...
Рейтинг: 0 / 0
01.12.2009, 10:51:57
    #36340495
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
AndViic
1. Как сделать так, что бы при выборе первого радиопереключателя выводился первый div (D1), а при выборе второго выводился второй div (D2)? Причем автоматом, без кнопки submit.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
function OnOff(obj)
{
	var
		DivOn,
		DivOff,
		Ctrl;
		
	switch(obj.id)
	{
		case "RadioGroup1_0" :
		{
			DivOn="D1";
			DivOff="D2";
			
			break;
		}
		case "RadioGroup1_1" :
		{
			DivOn="D2";
			DivOff="D1";
			
			break;
		}
	}
	
	if(Ctrl=document.getElementById(DivOn))
		Ctrl.style.display="block";
	if(Ctrl=document.getElementById(DivOff))
		Ctrl.style.display="none";
}
...
<label><input type="radio" name="Radio1" value="1" id="RadioGroup1_0" onclick="OnOff(this);" />Переключатель1</label>
<label><input type="radio" name="Radio1" value="2" id="RadioGroup1_1" onclick="OnOff(this);" />Переключатель2</label>	

<div id="D1"></div>
<div id="D2"></div>
AndViic
2. С помощью куки запоминалось последнее положение.
3. Для тех кто впервые на сайте и куков еще нет - по умолчанию включен переключатель1

тынць
...
Рейтинг: 0 / 0
01.12.2009, 11:57:15
    #36340713
AndViic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Спасибо большое! уже какой-то прогресс)) работает отлично, вот только когда на страницу заходишь отображаются оба дива. Только после нажатия на переключатель отображается тот див который нужен, в зависимости от нажатого переключателя)
...
Рейтинг: 0 / 0
01.12.2009, 12:11:53
    #36340758
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
AndViicвот только когда на страницу заходишь отображаются оба дива
/me думает:
— Вы, чего, и пальцы за меня загибать будете?
— Ага!
Код: plaintext
1.
<input type="radio" name="Radio1" value="2" id="RadioGroup1_1" onclick="OnOff(this);" style="display: none; " />
...
Рейтинг: 0 / 0
01.12.2009, 12:26:33
    #36340801
AndViic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Ex_SoftAndViicвот только когда на страницу заходишь отображаются оба дива
/me думает:
— Вы, чего, и пальцы за меня загибать будете?
— Ага!
Код: plaintext
1.
<input type="radio" name="Radio1" value="2" id="RadioGroup1_1" onclick="OnOff(this);" style="display: none; " />


Переключатели, как раз и должны отображаться оба, а вот дивы только один, в зависимости от выбранного переключателя))
...
Рейтинг: 0 / 0
01.12.2009, 12:30:51
    #36340809
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
AndViicПереключатели, как раз и должны отображаться оба, а вот дивы только один, в зависимости от выбранного переключателя))
/me думает: "...я така затуркана, така затуркана..."
Конечно же
Код: plaintext
1.
<div id="D2" style="display: none; "></div>
I'm so sorry... Из protect mode переключался...
...
Рейтинг: 0 / 0
01.12.2009, 12:32:07
    #36340819
AndViic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Ex_Soft, но спасибо за подсказку)) вставил style="display: none; во второй див, теперь то что надо)) Только без куки!!!
...
Рейтинг: 0 / 0
01.12.2009, 12:56:58
    #36340913
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
AndViicТолько без куки!!!
Во-первых: не орите
Во-вторых: вот Вам дрозофилка - разбирайтесь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
<html>
	<head>
		<title>Test Cookies</title>
		<script type="text/javascript">
<!--
var
	CookieName="CookieName";

function Load()
{
	var
		CookieValue,
		Ctrl;

	if((CookieValue=ReadCookie(CookieName))
		&& (Ctrl=document.getElementById("InputText1")))
		Ctrl.value=CookieValue;
}

function Save()
{
	var
		Ctrl;

	if(Ctrl=document.getElementById("InputText1"))
		WriteCookie(CookieName,Ctrl.value);
}

function ReadCookie(aName)
{
	var
		AllCookies=document.cookie,
		pos,
		value=null;

	if(typeof(aName)!="string"
		|| !aName.length)
		return(value);

	aName+="=";
	if((pos=AllCookies.indexOf(aName))!=- 1 )
	{
		value=AllCookies.substring(pos+aName.length);
		if((pos=value.indexOf(";"))!=- 1 )
			value=value.substring( 0 ,pos);  
	}

	return(value);
}

function WriteCookie(aName, aValue)
{
	var
		NextYear=new Date();

	if(typeof(aName)!="string"
		|| !aName.length
		|| typeof(aValue)!="string"
		|| !aValue.length)
		return;

	aName+="=";
	NextYear.setFullYear(NextYear.getFullYear()+ 1 );
	document.cookie=aName+aValue+";expires="+NextYear.toGMTString()+";path=/";
}
// -->
		</script>
	</head>
	<body onload="Load()">
		<input type="text" id="InputText1"><input type="button" id="InputButtonSave" value="Save" onclick="Save()"><input type="button" id="InputButtonLoad" value="Load" onclick="Load()">
	</body>
</html>
...
Рейтинг: 0 / 0
01.12.2009, 13:02:21
    #36340932
AndViic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Ex_Soft, Вы очень любезны) Сегодня вечером попробую разобраться, спасибо!
...
Рейтинг: 0 / 0
01.12.2009, 13:08:11
    #36340951
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
AndViic
Вы очень любезны

/me думает: сам не знаю, что на меня нашло...

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
01.12.2009, 13:41:13
    #36341053
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
офф
У него такое бывает :).
...
Рейтинг: 0 / 0
02.12.2009, 22:38:41
    #36344659
AndViic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Вроде должно быть как-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<script>  
    function OnOff(obj)
{
	var
		DivOn,
		DivOff,
		Ctrl;
		
	switch(obj.id)
	{
		case "RadioGroup1_0" :
		{
			DivOn="D1";
			DivOff="D2";
			
			break;
		}
		case "RadioGroup1_1" :
		{
			DivOn="D2";
			DivOff="D1";
			
			break;
		}
	}
	
	if(Ctrl=document.getElementById(DivOn))
		Ctrl.style.display="block";
	if(Ctrl=document.getElementById(DivOff))
		Ctrl.style.display="none";
}

function setCookie( name, value, expires, path, domain, secure ) {
    var today = new Date();
    today.setTime( today.getTime() );
    if ( expires ) {
        expires = expires *  1000  *  60  *  60  *  24 ;
    }
    var expires_date = new Date( today.getTime() + (expires) );
    document.cookie = name+'='+escape( value ) +
        ( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
        ( ( path ) ? ';path=' + path : '' ) +
        ( ( domain ) ? ';domain=' + domain : '' ) +
        ( ( secure ) ? ';secure' : '' );
}

function getCookie( name ) {
    var start = document.cookie.indexOf( name + "=" );
    var len = start + name.length +  1 ;
    if ( ( !start ) && ( name != document.cookie.substring(  0 , name.length ) ) ) {
        return null;
    }
    if ( start == - 1  ) return null;
    var end = document.cookie.indexOf( ';', len );
    if ( end == - 1  ) end = document.cookie.length;
    return unescape( document.cookie.substring( len, end ) );
}
 </script>  

<label><input type="radio" name="Radio1" value="1" id="RadioGroup1_0" onclick="OnOff(this);" />Переключатель1</label>
<label><input type="radio" name="Radio1" value="2" id="RadioGroup1_1" onclick="OnOff(this);" />Переключатель2</label>	

<div id="D1"></div>
<div id="D2" style="display: none></div>

Подскажите, пожалуйста, как сделать так чтобы на время сессии переключатель сохранял свое последнее положение?

Как связать все это?

как сделать, чтобы во время установки нового значения переключателя(например по событию onclick соответствующего элемента) выставить новое значение куки при помощи упомянутой выше функции
при загрузке же страницы, выставить соответствующему radio свойство checked в true, получив установленное раннее значение из кук
...
Рейтинг: 0 / 0
11.05.2010, 15:25:23
    #36621165
DeathHand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Добрый день =)

Постигаю АЗ жабаскрипт, есть такая же задача, но ИЕ на отрез отказывается приатачивать ивент к радио... т.е. както так если пишу:

Код: plaintext
1.
2.
3.
4.
<input type=RADIO name="rep_mode" id="rep_mode1" VALUE = "extended" CHECKED onclick="selection()">
<div id="option1" style = "display:block"></div>
<input type=RADIO name="rep_mode" id="rep_mode2" VALUE = "short" onclick="selection()">
<div id="option2" style = "display:block"></div>


и далее чтото такое:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<script>
  function selection(){
  
   if (document.all.rep_mode[ 0 ].checked == true){
      document.all.option1.style.display = "block";
      document.all.option2.style.display = "none";}
   
   if (document.all.rep_mode[ 1 ].checked == true){
      document.all.option1.style.display = "none";
      document.all.option2.style.display = "block";}
   }
  
  </script>

в мазилле воркс, ие - "Команда не поддерживается объектом" дивы не открываются, все плохо, что делать не известно=)

как бы устранить глюк?)
...
Рейтинг: 0 / 0
11.05.2010, 15:33:11
    #36621199
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
получайте элементы с помощью document.getElementById
...
Рейтинг: 0 / 0
11.05.2010, 15:45:26
    #36621239
DeathHand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
EmilRegis,

попробовал...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<script>
  function selection(){
  
   if (document.getElementById("rep_mode1").checked == true){
      document.all.option1.style.display = "block";
      document.all.option2.style.display = "none";}
   
   if (document.getElementById("rep_mode2").checked == true){
      document.all.option1.style.display = "none";
      document.all.option2.style.display = "block";}
   }
  
  </script>

тоже самое.
...
Рейтинг: 0 / 0
11.05.2010, 15:50:43
    #36621266
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<script>
  function selection(){
  
   if (document.getElementById("rep_mode1").checked == true){
      document.getElementById("option1").style.display = "block";
      document.getElementById("option2").style.display = "none";}
   
   if (document.getElementById("rep_mode2").checked == true){
      document.getElementById("option1").style.display = "none";
      document.getElementById("option2").style.display = "block";}
   }
  
</script>

Или делай полный тестовый пример для проверки...
...
Рейтинг: 0 / 0
11.05.2010, 15:54:45
    #36621283
DeathHand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
krvsa,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<html>
  <head>
  <title></title>
  </head>
  <body>
   <form name = "s_rep">
  
  <p><input type=RADIO name="rep_mode" id="rep_mode1" VALUE = "extended" CHECKED onclick = "selection()"> Отчет по выбранной комнате</p>
    
    
   <div id="option1" style = "display:block"><p>Комната: <select style="width:300">
            <option>Пункт  1 </option>
            <option>Пункт  2 </option>
            <option>Пункт  3 </option>
        </select></p>
   <p>Дата брони с <input type="text" value = "01.01.2010"> по <input type="text" value = "01.01.2010"></p></div>
   
   
   <p><input type=RADIO name="rep_mode" id="rep_mode2" VALUE = "short" onclick = "selection()"> Отчет по всем комнатам</p>
      <div id = "option2" style = "display:none">
      <p>Дата брони с <input type="text" value = "31.12.2010"> по <input type="text" value = "01.01.2010"></p></div>
      </div>
  
   
  
  <script>
  function selection(){
  
   if (document.getElementById("rep_mode1").checked == true){
      document.all.option1.style.display = "block";
      document.all.option2.style.display = "none";}
   
   if (document.getElementById("rep_mode2").checked == true){
      document.all.option1.style.display = "none";
      document.all.option2.style.display = "block";}
   }
  
  </script>
      
  </form>
   
  </body>
</html>
...
Рейтинг: 0 / 0
11.05.2010, 17:13:06
    #36621567
DeathHand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
как то так. в мозилле на ура, в ИЕ - мат.
...
Рейтинг: 0 / 0
11.05.2010, 20:03:52
    #36621891
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
DeathHandв ИЕ - мат.
А ларчик просто открывался... (с)

Измени название у функции. Не selection(), а например sel() и будет тебе счастие.
...
Рейтинг: 0 / 0
12.05.2010, 09:11:49
    #36622379
DeathHand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Radio переключатели
krvsa,

Работает... Спасибо=)
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Radio переключатели / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]