<select> установка нескольких селектов в одно значение 
		
		
		
		Задача: по выбору selectall установить все селекты cat[] в это же значение. 
	Вопрос: как реализовать Сначала получаем в переменную выбраное значение. Теперь циклом установить все селекты. Но... Для этого надо знать кол-во элементов cat[] на странице. document.myForm.cat.length не работает, наверное потому что это массив )) Помогите разобраться и реализовать ) 
<script type="text/javascript">
 function select_all(){
	var clv=document.myForm.selectall.value;	
	alert(clv);
}
</script>
<form method="post" name="myForm" action="">
	<select id="selectall" name="selectall" onChange="select_all()">
		<option value='1'>Яблоко</option>
		<option value='2'>Груша</option>
		<option value='3'>Тыква</option>		
	</select><hr />
	<select id="cat[0]">
		<option value='1'>Яблоко</option>
		<option value='2'>Груша</option>
		<option value='3'>Тыква</option>		
	</select><br />
	<select id="cat[1]">
		<option value='1'>Яблоко</option>
		<option value='2'>Груша</option>
		<option value='3'>Тыква</option>		
	</select>
</form>
Заранее благодарен )  | 
	
		
 Бред! Это ж просто плод больной фантазии!!! Почему id="cat[0]" должно работать??? Потому что ты так решил? 
	 | 
	
		
 
<form method="post" name="myForm" action="">
  <select onChange="this.form[1].selectedIndex = this.form[2].selectedIndex = this.selectedIndex;">
    <option>Яблоко</option>
    <option>Груша</option>
    <option>Тыква</option>		
  </select><hr />
  <select>
    <option>Яблоко</option>
    <option>Груша</option>
    <option>Тыква</option>		
  </select><br />
  <select>
    <option>Яблоко</option>
    <option>Груша</option>
    <option>Тыква</option>		
  </select>
</form>
 | 
	
		
 Цитата: 
	
 я и по нормальному понимаю ) это this.form[1].selectedIndex = this.form[2].selectedIndex = this.selectedIndex; сработает только в данной упрощённой форме, а если селектов не 2 а 20? а если помимо селектов ещё куча элементов? Потому считаю целесообразным заключить в функцию и вызывать по событию. из Ваших слов я понял, что некорректно имя id элемента. И до сих пор не понятно как получить кол-во селектов на странице?  | 
	
		
 Я лишь хотел сказать, что нужно изучать, а не гадать на кофейной гуще! 
	Цитата: 
	
 
getElementsByTagName('select').length
 | 
	
		
 Цитата: 
	
  | 
	
		
 Вот две функции (обе работают:) ). Только func ищет все select'ы, а func_ - только select'ы внутри данной формы. 
	
<form method="post" name="myForm" action="">
  <select onChange="func(this);">
    <option>Яблоко</option>
    <option>Груша</option>
    <option>Тыква</option>		
  </select><hr />
  <select class="cat">
    <option>Яблоко</option>
    <option>Груша</option>
    <option>Тыква</option>		
  </select><br />
  <select>
    <option>Яблоко</option>
    <option>Груша</option>
    <option>Тыква</option>		
  </select><br />
  <select class="cat">
    <option>Яблоко</option>
    <option>Груша</option>
    <option>Тыква</option>		
  </select>
</form>
<script>
function func(el){ //
  var elements = document.getElementsByTagName('select'), sI = el.selectedIndex;
  for(var i = 0; i < elements.length; i++) if(elements[i].className == 'cat') elements[i].selectedIndex = sI;
}
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>
 | 
	
		
 Цитата: 
	
 Хорошо когда есть тот кто объяснит, когда уже не знаешь куда копать ) Цитата: 
	
 Собственно решение задачи ) func_ - то что я изначально и хотел ) Теперь я понял как обращаться к элементам и как юзать классы элементов. Немного унифицировал функцию в доказательство усвоенного :write: 
function selectall(el,cl){
	var elements = el.form, length = el.form.length, sI = el.selectedIndex;
	for(var i = 0; i < length; i++){
		if(elements[i].className == cl) elements[i].selectedIndex = sI;
	}	
}
Sweet, большое спасибо )  | 
| Часовой пояс GMT +3, время: 11:20. |