Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Select не видит выбранные option (https://javascript.ru/forum/dom-window/75870-select-ne-vidit-vybrannye-option.html)

finlolo 13.11.2018 16:05

Select не видит выбранные option
 
Здравствуйте!
Сделал форму, на форме есть select.
При выборе option в этом select переменная не видит какой выбрала.

Код разметки:
<select name="imodel" id="imodelphone" onchange="func1()">
   <option value="5">iPhone 5</option>
   <option value="6">iPhone 6</option>
</select>


Код JS:
function func1(){
   var seld = document.getElementById('imodelphone');
   var sel = document.getElementById('imodelphone').selectedIndex;
   var options = document.getElementById('imodelphone').options;
   console.log(seld.selectedIndex);
   alert('Вы выбрали: '+options[sel].text);
}



Проблема на странице:
http://iphone.glazhost.tk/#showmodal_61

Dilettante_Pro 13.11.2018 16:11

<select name="imodel" id="imodelphone" onchange="func1(this)">
   <option value="5">iPhone 5</option>
   <option value="6">iPhone 6</option>
</select>
<script>
function func1(elem){
   alert(elem.value);
}
</script>

Или
<select name="imodel" id="imodelphone">
   <option value="5">iPhone 5</option>
   <option value="6">iPhone 6</option>
</select>
<script>
imodelphone.onchange=function (){
   alert(this.value);
}
</script>

Лучше так
<select name="imodel" id="imodelphone">
   <option value="" disabled selected>Выберите модель</option>
   <option value="5">iPhone 5</option>
   <option value="6">iPhone 6</option>
</select>
<script>
imodelphone.onchange=function (){
   alert(this.value);
}
</script>

SuperZen 13.11.2018 16:14

selectedIndex находится в options
<select name="imodel" id="imodelphone" onchange="func1()">
    <option value="5">iPhone 5</option>
    <option value="6">iPhone 6</option>
 </select>
 
<script>
  console.log( {
    imodelphone: document.getElementById('imodelphone'),
    opts: document.getElementById('imodelphone').options,
    selected: document.getElementById('imodelphone').options[document.getElementById('imodelphone').options.selectedIndex].value
  })
</script>

j0hnik 13.11.2018 16:20

SuperZen,
Dilettante_Pro,
проблема не в этом, его код тоже работает, на странице одинаковые ID

j0hnik 13.11.2018 16:21

finlolo,
поменяйте ID для второго или первого чехла и все заработает

Dilettante_Pro 13.11.2018 16:23

j0hnik,
Цитата:

Сообщение от j0hnik
его код тоже работает,

А зачем так сложно доставать из select выбранное значение?

j0hnik 13.11.2018 16:24

Dilettante_Pro,
незачем, но как я уже говорил проблема глубже, и замена кода на ваш ее не решает

finlolo 13.11.2018 16:24

Еще такой вопрос:
почему не срабатывает через onchange?

имею в виду не через html элемент указывать а в коде

j0hnik 13.11.2018 16:26

Цитата:

Сообщение от finlolo
имею в виду не через html элемент указывать а в коде

опять же из за одинаковых ID

finlolo 13.11.2018 16:29

j0hnik,
ID у чего одинаковы?
у select он один, а у его option их вообще нет.


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