Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возможно ли обращение к select по его name? (https://javascript.ru/forum/misc/21851-vozmozhno-li-obrashhenie-k-select-po-ego-name.html)

Diablos 26.09.2011 20:30

Возможно ли обращение к select по его name?
 
Приветствую.

Есть список не в form и у select не задано ID:

<select name="test" size="1">
  <option selected></option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  </select>


По умолчанию в списке выбрана пустая строка и размер поля списка 1.

Возможно ли как-то по name обратится к select 'у чтобы при загрузки страницы была выбрана например 3-я строчка?
И возможно ли размер списка изменить с этими же условиями (естественно для другого списка)?

Знаю что если бы select был в form то сработало бы это:

var objSel = document.ИмяForm.ИмяSelect;
objSel.selectedIndex = 2;


Или без form но с заданным ID у select:

var objSel = document.getElementById("SelectID");
objSel.selectedIndex = 2;


Пробовал ещё так:

var objSel = document.getElementByName("ИмяSelect");
objSel.selectedIndex = 2;


Доступа к файлам странички нету, я пытаюсь свой UserJS под сайт сделать.

p.s.: целый день искал решение на разных сайтах и ничего :-E

Заранее спасибо.

9xakep 26.09.2011 20:57

<select id='sel'>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
var sek = document.getElementById('sel')
sek.selectedIndex = 2
</script>

Я правильно понял задачу?

9xakep 26.09.2011 21:03

"var objSel = document.getElementById("SelectID");
objSel.selectedIndex = 2;
"
А с чего вы взяли что это не сработает?
<select id='SelectID'>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
var objSel = document.getElementById("SelectID"); 
objSel.selectedIndex = 2
</script>

Diablos 26.09.2011 21:18

Цитата:

Сообщение от 9xakep (Сообщение 128197)
Я правильно понял задачу?

Нет.

Цитата:

Сообщение от 9xakep (Сообщение 128198)
А с чего вы взяли что это не сработает?

Как я писал в начале, к select 'у задано только имя name="test"
ID не задано, и по этому document.getElementById тут не катит, ибо он только с ID работает а не с name.

Пробовал document.getElementByName о котором тут пишется, но он тоже что-то не работает.

Sweet 26.09.2011 21:23

Цитата:

Сообщение от Diablos
.getElementByName

Оттуда же:
Цитата:

Частая опечатка связана с отсутствием буквы s в названии метода getElementById, в то время как в других методах эта буква есть: getElementsByName.

Diablos 26.09.2011 21:34

Sweet,
И так пробовал, не работает.
Elements видимо для того, чтобы несколько элементов выбирать и только.

Странно конечно, там написано что с select работает, а он не работает. =(

Sweet 26.09.2011 22:02

Цитата:

Сообщение от Diablos
не работает

<select name="test" size="1"> 
  <option selected></option> 
  <option value="1">1</option> 
  <option value="2">2</option> 
  <option value="3">3</option> 
  <option value="4">4</option> 
</select>
<script>
document.getElementsByName( "test" ).item( 0 ).selectedIndex = 2;
</script>
Работает!:blink:

Diablos 26.09.2011 22:11

Цитата:

Сообщение от Sweet (Сообщение 128212)
<select name="test" size="1"> 
  <option selected></option> 
  <option value="1">1</option> 
  <option value="2">2</option> 
  <option value="3">3</option> 
  <option value="4">4</option> 
</select>
<script>
document.getElementsByName( "test" ).item( 0 ).selectedIndex = 2;
</script>
Работает!:blink:

:D Ура! :D
Да, теперь работает.
Огромнейшее спасибо.

А размер (size) списка (select) возможно изменить с этими же условиями? Надо чтобы не весь список показывало а только две строчки.

upd.
Всё сам понял. Ещё раз спасибо ;)
document.getElementsByName("street").item(0).size = 3;

9xakep 26.09.2011 22:18

Цитата:

Сообщение от Sweet (Сообщение 128212)
<select name="test" size="1"> 
  <option selected></option> 
  <option value="1">1</option> 
  <option value="2">2</option> 
  <option value="3">3</option> 
  <option value="4">4</option> 
</select>
<script>
document.getElementsByName( "test" ).item( 0 ).selectedIndex = 2;
</script>
Работает!:blink:

А что такое item?Или дайте если не сложно ссылку на справочник :)

Diablos 26.09.2011 22:31

Хммм. Что я делаю не так? )
.size = 2 - показывает 4 строки
.size = 3 - показывает 4 строки
.size = 4 - показывает 4 строки
.size = 5 - показывает 5 строк
.size = 6 - показывает 6 строк (даже если их всего 5)
и т.д.

<select name="test" size="1"> 
  <option selected></option> 
  <option value="1">1</option> 
  <option value="2">2</option> 
  <option value="3">3</option> 
  <option value="4">4</option> 
</select>
<script>
document.getElementsByName("test").item(0).size = 2;
</script>


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