Javascript.RU

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

Привет, не силен в java. Подскажите плз, как сделать, чтобы третий вариант нормально работал, не могу разобраться. Помогите плз

<style>
.div2 {
 display: none ;
}
</style>
<style>
.div3 {
 display: none ;
}
</style>
<select onchange="change(this.value);">
<option value=1 selected>1 вариант</option>
<option value=2>2 вариант</option>
<option value=3>3 вариант</option>
</select>
<div class="div1"><input type="checkbox" value="Курс 1" />Курс 1<br /></div>
<div class="div1"><input type="checkbox" value="Курс 2" />Курс 2<br /></div>
<div class="div1"><input type="checkbox" value="Курс 3" />Курс 3<br /></div>
<div class="div2"><input type="checkbox" value="нКурс 1" />нКурс 1<br /></div>
<div class="div2"><input type="checkbox" value="нКурс 2" />нКурс 2<br /></div>
<div class="div2"><input type="checkbox" value="нКурс 3" />нКурс 3<br /></div>
<div class="div3"><input type="checkbox" value="ннКурс 1" />ннКурс 1<br /></div>
<div class="div3"><input type="checkbox" value="ннКурс 2" />ннКурс 2<br /></div>
<script>
var divs = [document.querySelectorAll(".div1"), document.querySelectorAll(".div2"), document.querySelectorAll(".div3")] ;
function change(i) {
 i = i-1 ;
 var nodeList = divs[i] ;
 var l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "block" ;
 i = !i - 0 ;
 nodeList = divs[i] ;
 l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "none" ;
i = 1 - 0 ;
 nodeList = divs[i] ;
 l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "none" ;
} ;
</script>


в данном случае 1 и 3 вариант отрабатывает нормально. а когда выбираешь 2 то блоки 3 варианта накладываются на 2 вариант

Последний раз редактировалось 1baddog1, 25.06.2013 в 11:21.
Ответить с цитированием
  #12 (permalink)  
Старый 25.06.2013, 11:23
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

а что у вас за выражение:
i = !i - 0; //так не делают. результатом будет булево значение
а потом вы это булево значение запихивайте в массив divs[i];
ктож так делает? в массив должно идти число, причем целое!!


и зачем писать: i = i-1; в самом начале, когда можно в самом option описать value с нуля:

<option value=0 selected>1 вариант</option>
<option value=1>2 вариант</option>
<option value=2>3 вариант</option>
Ответить с цитированием
  #13 (permalink)  
Старый 25.06.2013, 11:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

1baddog1,
Вариант ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<style>
.div2 {
 display: none ;
}
</style>
<style>
.div3 {
 display: none ;
}
</style>
<select onchange="change(this.value);">
<option value=1 selected>1 вариант</option>
<option value=2>2 вариант</option>
<option value=3>3 вариант</option>
</select>
<div class="div1"><input type="checkbox" value="Курс 1" />Курс 1<br /></div>
<div class="div1"><input type="checkbox" value="Курс 2" />Курс 2<br /></div>
<div class="div1"><input type="checkbox" value="Курс 3" />Курс 3<br /></div>
<div class="div2"><input type="checkbox" value="нКурс 1" />нКурс 1<br /></div>
<div class="div2"><input type="checkbox" value="нКурс 2" />нКурс 2<br /></div>
<div class="div2"><input type="checkbox" value="нКурс 3" />нКурс 3<br /></div>
<div class="div3"><input type="checkbox" value="ннКурс 1" />ннКурс 1<br /></div>
<div class="div3"><input type="checkbox"value="ннКурс 2" />ннКурс 2<br /></div>
<script>
var divs = document.querySelectorAll(".div1, .div2, .div3") ;
function change(i) {
 var nodeList = divs,
 l = nodeList.length ;
 while(l--)
 nodeList[l].style.display = "none" ;
 nodeList = document.querySelectorAll(".div"+i) ;
 l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "block" ;
} ;
</script>

</body>

</html>
Ответить с цитированием
  #14 (permalink)  
Старый 25.06.2013, 11:35
Аспирант
Отправить личное сообщение для 1baddog1 Посмотреть профиль Найти все сообщения от 1baddog1
 
Регистрация: 25.06.2013
Сообщений: 37

Поставил с нуля. Но при таком варианте тоже не правильно работает. На блоки 1 варианта накладывается блоки 3 варианта.

<script>
var divs = [document.querySelectorAll(".div1"), document.querySelectorAll(".div2"), document.querySelectorAll(".div3")] ;
function change(i) {
 i = i - 0 ;
 var nodeList = divs[i] ;
 var l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "block" ;
 i = i - 1;
 nodeList = divs[i] ;
 l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "none" ;
} ;
</script>
Ответить с цитированием
  #15 (permalink)  
Старый 25.06.2013, 11:37
Аспирант
Отправить личное сообщение для 1baddog1 Посмотреть профиль Найти все сообщения от 1baddog1
 
Регистрация: 25.06.2013
Сообщений: 37

спасибо! Рони так идеально отрабатывает
Ответить с цитированием
  #16 (permalink)  
Старый 26.06.2013, 12:24
Аспирант
Отправить личное сообщение для 1baddog1 Посмотреть профиль Найти все сообщения от 1baddog1
 
Регистрация: 25.06.2013
Сообщений: 37

всё конечно теперь супер работает, ещё раз спасибо.

</style>
<select onchange="change(this.value);">
<option value=1 selected>1 вариант</option>
<option value=2>2 вариант</option>
<option value=3>3 вариант</option>
</select>


Подскажите плз(использую cms modx и eform),
мне надо сделать так
</style>
<select onchange="change(this.value);">
<option value=1 вариант selected>1 вариант</option>
<option value=2 вариант>2 вариант</option>
<option value=3 вариант>3 вариант</option>
</select>


чтобы в репорте отображался текст выбранного варианта. скрипт перестаёт работать, когда меняю значение в value.
Ответить с цитированием
  #17 (permalink)  
Старый 26.06.2013, 12:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от 1baddog1
чтобы в репорте отображался текст выбранного варианта. скрипт перестаёт работать, когда меняю значение в value.
остаётся только догадыватся что такое репорт и как он у вас формируется --- могу только предположить. значение value если это не число лучше ставить в кавычки, особенно когда строка содержит пробелы.
<option value="2 вариант">2 вариант</option>
и для получения числа из строки http://javascript.ru/parseFloat
function change(i) { i = parseFloat(i);
Ответить с цитированием
  #18 (permalink)  
Старый 26.06.2013, 13:02
Аспирант
Отправить личное сообщение для 1baddog1 Посмотреть профиль Найти все сообщения от 1baddog1
 
Регистрация: 25.06.2013
Сообщений: 37

кусок репорта:
<li><b>отделение:</b> [+otdel+]</li>
<li><b>Ответы вопроса</b> [+newkursy+]</li>



сам скрипт сейчас такой:
<style>
.div2 {
 display: none ;
}
</style>
<style>
.div3 {
 display: none ;
}
</style>
<p><label>Вопрос?</label><br />
<p><label for="otdel">Выберите отделение</label><br />
<select id="otdel" name="otdel" onchange="change(this.value); ">
<option value="1">отделение м</option>
<option value="2">отделение б</option>
<option value="3">отделение в</option>
</select>
<div class="div1"><input type="checkbox" name="newkursy[]" value="Курс 1" />Курс 1<br /></div>
<div class="div1"><input type="checkbox" name="newkursy[]" value="Курс 2" />Курс 2<br /></div>
<div class="div1"><input type="checkbox" name="newkursy[]" value="Курс 3" />Курс 3<br /></div>
<div class="div2"><input type="checkbox" name="newkursy[]" value="нКурс 1" />нКурс 1<br /></div>
<div class="div2"><input type="checkbox" name="newkursy[]" value="нКурс 2" />нКурс 2<br /></div>
<div class="div2"><input type="checkbox" name="newkursy[]" value="нКурс 3" />нКурс 3<br /></div>
<div class="div3"><input type="checkbox" name="newkursy[]" value="ннКурс 1" />ннКурс 1<br /></div>
<div class="div3"><input type="checkbox" name="newkursy[]" value="ннКурс 2" />ннКурс 2<br /></div>
<script>
var divs = document.querySelectorAll(".div1, .div2, .div3") ;
function change(i) {
 var nodeList = divs,
 l = nodeList.length ;
 while(l--)
 nodeList[l].style.display = "none" ;
 nodeList = document.querySelectorAll(".div"+i) ;
 l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "block" ;
} ;
</script>


в репорте где [+otdel+] берется значение из value

и при формировании репорта в зависимости от выбранного варианта подставляется 1, 2 или 3

а если value прописать так:
<option value="отделение м">отделение м</option>
<option value="отделение б">отделение б</option>
<option value="отделение в">отделение в</option>


то снизу не появляется select

Последний раз редактировалось 1baddog1, 26.06.2013 в 13:06.
Ответить с цитированием
  #19 (permalink)  
Старый 26.06.2013, 13:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от 1baddog1
выбранного варианта подставляется 1, 2 или 3
а что мешает подставить 1 +" вариант" и не менять в селекторе ничего
Ответить с цитированием
  #20 (permalink)  
Старый 26.06.2013, 13:12
Аспирант
Отправить личное сообщение для 1baddog1 Посмотреть профиль Найти все сообщения от 1baddog1
 
Регистрация: 25.06.2013
Сообщений: 37

тогда
« MODx Parse Error »

MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »

PHP error debug
Error: Invalid argument supplied for foreach()
Error type/ Nr.: Warning - 2
File: /home/site/html/assets/snippets/eform/eform.inc.php
Line: 851
Line 851 source: foreach ($attributes as $k => $v)

Parser timing
MySQL: 0,0003 s (1 Requests)
PHP: 0,0355 s
Total: 0,0357 s
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический список элементов формы lar_i_sa Общие вопросы Javascript 0 08.03.2013 15:27
селект переделанный под список Vasёk18 Элементы интерфейса 0 13.04.2012 23:49
Динамический список djsadd Internet Explorer 1 13.04.2012 01:35
Динамический список из DIV`ов и INPUT`ов Andrew_li jQuery 5 09.06.2011 15:23
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40