Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Дбулируем установить значение одного <slect> при его выборе в другом (https://javascript.ru/forum/dom-window/29426-dbuliruem-ustanovit-znachenie-odnogo-slect-pri-ego-vybore-v-drugom.html)

Skesh 27.06.2012 15:15

Дбулируем установить значение одного <slect> при его выборе в другом
 
Есть код:
<script type="text/javascript">
function func_(el){
  var elements = el.form, length = el.form.length, sI = el.selectedIndex;
  for(var i = 0; i < length; i++) if(elements[i].className == 'cat') elements[i].selectedIndex = sI;
}
</script>

<select onChange="func_(this);"  name="kategory_nazva" id="action5">
<option>Пункт 1</option>
<option>Пункт 2</option>
<option>Пункт 3</option>
<option>Пункт 4</option>
</select>
<select class="cat" name="new_kategory_nazva" >
<option>Пункт 1</option>
<option>Пункт 2</option>
<option>Пункт 3</option>
<option>Пункт 4</option>
</select>

он дублирует значение одного <slect> в другой в даной форме. Но вот проблема в id="action5" в первом сєлєкте, он нужен мне для другого скрипта, а сним работать не хочет, помогите как передлать даный скрипт под даный ИД? Я тольку учю Javascript и мне єто тяжеловато...

ksa 27.06.2012 19:08

Skesh, что-то не понятно в чем твоя проблема...

Skesh 27.06.2012 19:50

Цитата:

Сообщение от ksa (Сообщение 184635)
Skesh, что-то не понятно в чем твоя проблема...

Проблема в id="action5" первого select, без него скрипт работает, а сним не хочет, нужно его переделать под этот id, чтобы даные он получал не потекущей форме, а поэтому id

ksa 27.06.2012 19:53

Цитата:

Сообщение от Skesh
чтобы даные он получал не потекущей форме

У тебя вообще нет формы...

Цитата:

Сообщение от Skesh
а поэтому id

Таки используй
document.getElementById(<id>)

KingStar 27.06.2012 19:55

Цитата:

Сообщение от ksa (Сообщение 184635)
Skesh, что-то не понятно в чем твоя проблема...

Согласен, даже судя по ответу - все ровно не понятно

bes 27.06.2012 22:11

<select id="sel1">
  <option>Пункт 1</option>
  <option>Пункт 2</option>
  <option>Пункт 3</option>
  <option>Пункт 4</option>
</select>
<select>
  <option>Пункт 1</option>
  <option>Пункт 2</option>
  <option>Пункт 3</option>
  <option>Пункт 4</option>
</select>

<script>
window.onload = function () {
  var sel1 = document.getElementById('sel1');
  sel1.onchange = function () {
    this.nextElementSibling.selectedIndex = this.selectedIndex; //не для IE<9
  }
}
</script>

Skesh 28.06.2012 00:25

bes, спасибо большое!

Skesh 28.06.2012 13:29

эмммм... поспешил, не работает, браузер Опера 12.
Даю даные еще раз:
<form id="form2" name="form2" method="post" action="action.php" enctype="multipart/form-data">

<select onChange="func_(this);"  name="kategory_nazva" id="action5">
<option>Пункт 1</option>
<option>Пункт 2</option>
<option>Пункт 3</option>
<option>Пункт 4</option>
</select>

<select name="subkategory_nazva" id="product5">
<option>Пункт 1</option>
<option>Пункт 2</option>
<option>Пункт 3</option>
<option>Пункт 4</option>
</select>
</form>

<script type="text/javascript">
function func_(el){
  var elements = el.form, length = el.form.length, sI = el.selectedIndex;
  for(var i = 0; i < length; i++) if(elements[i].className == 'cat') elements[i].selectedIndex = sI;
}
</script>

Skesh 28.06.2012 13:34

Пробывал так:
window.onload = function () {
  var sel1 = document.getElementById('action5'),
	  sel2 = document.getElementById('product5');
  sel1.onchange = function () {
    sel2.selectedIndex = sel1.selectedIndex; 
  }
}
не работает :-E

bes 28.06.2012 13:38

<select id="sel1">
  <option>Пункт 1</option>
  <option>Пункт 2</option>
  <option>Пункт 3</option>
  <option>Пункт 4</option>
</select>
<select id="sel2">
  <option>Пункт 1</option>
  <option>Пункт 2</option>
  <option>Пункт 3</option>
  <option>Пункт 4</option>
</select>

<script>
window.onload = function () {
  var sel1 = document.getElementById('sel1');
  var sel2 = document.getElementById('sel2');
  sel1.onchange = function () {
    sel2.selectedIndex = sel1.selectedIndex; 
  }
}
</script>


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