Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Получить значение списка


Автор: serezhka1986 1.3.2012, 13:46
Добрый день! Прошу помощи. Есть список
Код

<select name="PERIOD" style="font-size:10px;">
  <option value="">Не выбрано</option>
  <optgroup label="Все периоды"> 
      <option value="1">05.01.2012</option>
      <option value="2">12.02.2012</option>
      <option value="3">26.06.2012</option>
  </optgroup>
</select>    


Value выбраного селекта получаю так (jQuery)
Код

var id_period = $('select[name="PERIOD"]').val();


Вопрос: Как получить само выбранное значение 05.01.2012, 12.02.2012 или 26.06.2012?

Автор: ksnk 1.3.2012, 15:01
Код

var sel=$('select[name=PERIOD]')[0];
console.log(sel.options[sel.selectedIndex].text);


Автор: serezhka1986 2.3.2012, 11:55
Че-то не работает. Хром выдает ошибку: Uncaught TypeError: Cannot read property 'options' of undefined

Автор: ksnk 2.3.2012, 12:18
Как вызывается?
Код

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<select name="PERIOD" style="font-size:10px;">
  <option value="">Не выбрано</option>
  <optgroup label="Все периоды"> 
      <option value="1">05.01.2012</option>
      <option value="2">12.02.2012</option>
      <option value="3">26.06.2012</option>
  </optgroup>
</select>    
<button onclick="console.log($('select[name=PERIOD]').val())">val</button><br>
<button onclick="var sel=$('select[name=PERIOD]')[0];console.log(sel.options[sel.selectedIndex].text)">opt</button>


Так все(у меня smile) работает.

Автор: serezhka1986 2.3.2012, 12:30
Вот так:
Код

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<select name="PERIOD" style="font-size:10px;">
  <option value="">Не выбрано</option>
  <optgroup label="Все периоды"> 
      <option value="1">05.01.2012</option>
      <option value="2">12.02.2012</option>
      <option value="3">26.06.2012</option>
  </optgroup>
</select>    
<button type="button" onclick="javascript: createpost();">Сформировать</button>


Фукнкция createpost:
Код

function createpost() {
    var id_period = $('select[name="PERIOD"]').val();
    var sel=$('select[name=PERIOD]')[0];
    console.log(sel.options[sel.selectedIndex].text);
}

Автор: ksnk 2.3.2012, 12:41
http://jsfiddle.net/VMHjR/
а тут?

Автор: serezhka1986 2.3.2012, 13:11
Не работает и все.  smile 
Удалось решить так:
Код

var id_period = $('select[name="PERIOD"]').val();
var sel=$('select[name=PERIOD] option:selected').text();


ksnk, спасибо за помощь!

Автор: ksnk 2.3.2012, 14:57
На каком броузере не работало?

Автор: serezhka1986 2.3.2012, 15:00
Пробовал и в Опере и Хромом (в консоле ошибку смотрел).

Автор: ksnk 2.3.2012, 15:10
я тестировал в FF, Хроме, IE9 (console.log заменить на alert) 

В любом случае, решение с option:selected более true-jQuery  smile  Так что лучше им и пользоваться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)