Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2010, 00:59
Новичок на форуме
Отправить личное сообщение для arcanerain Посмотреть профиль Найти все сообщения от arcanerain
 
Регистрация: 17.06.2010
Сообщений: 8

Получить значения доп. полей select-option
Доброго времени суток, поделитесь, пожалуйста, если кто знает как в js получить значение из option комбобокса. например
<select name="element">
<option group_id=30 value=1>1</option>
<option group_id=31 value=2>2</option>
<option group_id=32 value=3>3</option>
</select>


так вот хотелось бы получить group_id из выбранного опшена. если невозможно прикрепить туда собственный атрибут, скажите, возможно ли получить хотя бы его родную опцию label?
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2010, 01:23
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от arcanerain
из выбранного
elem.options[elem.selectedIndex]

Сообщение от arcanerain
получить group_id
elem.group_id
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2010, 01:44
Новичок на форуме
Отправить личное сообщение для arcanerain Посмотреть профиль Найти все сообщения от arcanerain
 
Регистрация: 17.06.2010
Сообщений: 8

дописываем в select onChange='getGroupId()', пишем

function getGroupId()
{
elem = document.getElementsByName('element');
alert(elem.group_id);
}


получаем undefined. это я пробовал первым делом. как получить значение поля и value знаю, но соль в том что нужен именно мой атрибут. мб есть другие варианты?

Последний раз редактировалось arcanerain, 29.09.2010 в 02:02.
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2010, 01:48
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от arcanerain
elem.group_id
нужно использовать на выбранном option. Как найти выбранный я писал выше.
Ответить с цитированием
  #5 (permalink)  
Старый 29.09.2010, 01:59
Новичок на форуме
Отправить личное сообщение для arcanerain Посмотреть профиль Найти все сообщения от arcanerain
 
Регистрация: 17.06.2010
Сообщений: 8

elem.options[elem.selectedIndex].group_id также выдает undefined(
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2010, 02:10
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от arcanerain
также выдает undefined(
да, я немного ошибся: левые атрибуты не дублируются в свойства, их нужно получать через getAttribute. Полный рабочий пример:
<select onchange="alert(this.options[this.selectedIndex].getAttribute('group_id'));">
<option group_id="1">1</option>
<option group_id="2">2</option>
<option group_id="3">3</option>
<option group_id="4">4</option>
</select>
Ответить с цитированием
  #7 (permalink)  
Старый 29.09.2010, 02:33
Новичок на форуме
Отправить личное сообщение для arcanerain Посмотреть профиль Найти все сообщения от arcanerain
 
Регистрация: 17.06.2010
Сообщений: 8

огромное спасибо!
Ответить с цитированием
  #8 (permalink)  
Старый 29.09.2010, 02:35
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Riim
левые атрибуты не дублируются в свойства, их нужно получать через getAttribute
любые атрибуты надо получать через getAttribute
кроме случая, когда знаешь на 100% что данный атрибут перейдет в какое-то свойство(возможно с другим именем)
более того для произвольтного "левого атрибута" я не уверен, что можно гарантировать кросбраузерный доступ хоть каким-то способом.
Ответить с цитированием
  #9 (permalink)  
Старый 29.09.2010, 02:39
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

И в надежде на будущий dataset api называть левые атрибуты лучше так:
<option data-group-id="1">1</option>
Ответить с цитированием
  #10 (permalink)  
Старый 29.09.2010, 02:40
Новичок на форуме
Отправить личное сообщение для arcanerain Посмотреть профиль Найти все сообщения от arcanerain
 
Регистрация: 17.06.2010
Сообщений: 8

завтра проверю кроссбраузерность. главное, что уже есть на что опираться) если "левый" атрибут не пойдет, есть один путь отступления - использовать родной label.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические списки Shaci jQuery 0 14.12.2009 15:03
Собрать значения всех полей формы vvsh Events/DOM/Window 3 09.11.2009 00:35
Вставка текста в textarea после выбора select option modelisto Общие вопросы Javascript 2 14.10.2009 19:27
Скрыть теги OPTION в SELECT Urfin jQuery 2 30.08.2009 15:16
php не принимает значения динамических полей (кроме браузера IE) Serge xcom Events/DOM/Window 2 23.08.2009 12:15