Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Установка кнопкой всех значений SELECT одинаково (https://javascript.ru/forum/dom-window/14007-ustanovka-knopkojj-vsekh-znachenijj-select-odinakovo.html)

Лавсановые Волокна 23.12.2010 23:48

Установка кнопкой всех значений SELECT одинаково
 
Здравствуйте ,подскажите пожалуйста ,проблема следующая:
есть например элементы SELECT
<form id="form1" name="form1" method="post" action="">  
 
  <select name="myselectid" id="myselectid">  
    <option value="first">first </option>  
    <option value="second">second</option>  
    <option value="third">third</option>  
  </select>  
 
  <select name="myselectid" id="myselectid">  
    <option value="first">first </option>  
    <option value="second">second</option>  
    <option value="third">third</option>  
  </select>  
 
  <select name="myselectid" id="myselectid">  
    <option value="first">first </option>  
    <option value="second">second</option>  
    <option value="third">third</option>  
  </select>  
 
</form>


Нужно создать кнопку, которая при нажатии устанавливала бы выбор одинаковый для всех элементов Select
.... ну например чтобы выбирался пункт second везде вообще.

пробовал так:
document.getElementById('myselectid').options[2].selected = 'true'

Но значение устанавливается только для первого select с ID myselectid
Подскажите как для всех установить?

dmitriymar 24.12.2010 01:01

http://cp77.byethost32.com/javascrip...and-javascript
описание этого глюка оттуда
При динамическом заполнении списка через скрипт и последующей установке выделенного пункта через свойство selectedIndex или selected некоторые браузеры могут вести себя по разному. Так в браузере Opera проявляется такое поведение (баг) в добавлении пустых элементов в список, доступ к которым из скрипта невозможен (скрипт их не видит, зато пользователь видит и может их выбрать). Эти пустые лже-элементы списка появляются после установки свойства selectedIndex или selected. Для обхода этой ошибки в Opera используйте установку этих свойств через setTimeout с задержкой в 1мс:

var objSel = document.getElementById("mySelect");

//Динамически создаем элементы списка
objSel.options[0] = new Option("1-ая строка списка", "str0");
objSel.options[1] = new Option("2-ая строка списка", "str1");

//Выделяем второй элемент списка
setTimeout( function(){objSel.options[1].selected=true;}, 1 );


да и наверное стоит обращаться не document.getElementById('myselectid').options[2].selected = 'true'
а через форму

ksa 24.12.2010 11:16

Лавсановые Волокна, как вариант...

<!DOCTYPE html>
<html>
<head>
<style>
</style>
<script>
function Set() {
	var o=document.getElementById('form1').getElementsByTagName('select')
	var i
	for (i=0; i<o.length; i++) {
		o[i].selectedIndex=1
	}
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">  
	<select name="myselectid" id="myselectid">  
		<option value="first">first </option>  
		<option value="second">second</option>  
		<option value="third">third</option>  
	</select>  
	<select name="myselectid" id="myselectid">  
		<option value="first">first </option>  
		<option value="second">second</option>  
		<option value="third">third</option>  
	</select>  
	<select name="myselectid" id="myselectid">  
		<option value="first">first </option>  
		<option value="second">second</option>  
		<option value="third">third</option>  
	</select>  
	<br />
	<br />
	<input type='button' value='Set' onclick='Set()' />
</form>
</body>
</html>

GreatRash 28.12.2010 13:28

id должен быть уникальным, а у вас 3 одинаковых...


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