Как получить значение из поля выбора в HTML-таблице

#javascript

#javascript

Вопрос:

Я пытаюсь получить значение из поля выбора в моей таблице HTML. Как я могу выбрать выбранное значение?

Что я пробовал до сих пор:

 this.cells[14].innerHTML; 
this.cells[14].children[0].innerhtml; 
this.cells[14].children[0].innerText; 

The last one .innerText returns all the items in my select box......
 
 var table2 = document.getElementById('table_items_program');

        for (var i2 = 1; i2 < table2.rows.length; i2  ) {
            table2.rows[i2].onclick = function () {
                document.getElementById("id").value = this.cells[0].innerHTML;
                document.getElementById("select").value = this.cells[14].children[0].innerText;
            }
        }
 
 <td><select class="selectpicker" multiple>
<?php while ($row9 = mysqli_fetch_assoc($result9)):; ?>
      <option value="<?php echo $row9['id']; ?>"><?php echo $row9['id'];?>                  
      </option> 
<?php endwhile; ?>                   
</select></td>

<input style="display: inline" id="id" name="id">
<input style="display: inline" id="select" name="select">
 

Выбранное значение из моего поля выбора в моей таблице HTML

Комментарии:

1. Вы пробовали .value ?

2. @freefaller Да, я сделал, это возвращает undefined

3. Вы получаете элементы с идентификаторами «id» и «select» можете ли вы включить соответствующий html

4. @R3tep Конечно! Это всего лишь 2 поля ввода, где я могу видеть, что возвращает javascript

Ответ №1:

Как я могу выбрать выбранное значение?

Вы можете получить выбранный индекс с помощью метода HTMLSelect​Element​.selected​Index


Но если я понимаю вашу проблему. Вы пытаетесь получить текущие значения вашего выбора. Итак, вам нужно получить значение выбранных вами параметров.

Вы можете сделать это следующим образом:

 document.getElementById('mySelect').onchange = function() {
  let options = this amp;amp; this.options;
  let selectedValues = []
  for (var i = options.length; i--;) {
    let opt = options[i];
    if (opt.selected) {
      selectedValues.push(opt.value || opt.text);
    }
  }
  console.log(selectedValues)
} 
 <select id="mySelect" multiple>
  <option value="a"> a </option>
  <option value="b"> b </option>
  <option value="c"> c </option>
</select> 

Реализация в вашем примере кода

 for (var i2 = 1; i2 < table2.rows.length; i2  ) {
  table2.rows[i2].onclick = function() {
    document.getElementById("id").value = this.cells[0].innerHTML;

    var options = this amp;amp; this.cells[14].children[0].options;
    var selectedValues = []
    for (var i = options.length; i--;) {
      var opt = options[i];
      if (opt.selected) {
        selectedValues.push(opt.value || opt.text);
      }
    }
    document.getElementById("select").value = JSON.stringify(selectedValues);
  }
}
 

Ответ №2:

так просто…

 ShowSelected.onclick = function()
{
  console.clear()
  document.querySelectorAll('.selectpicker option:checked').forEach(opt=>console.log(opt.value))
} 
 .selectpicker { 
  vertical-align: text-top;
  } 
 choose one or more :
<select class="selectpicker" multiple size=6 >
  <option value="a"> A element</option>
  <option value="b"> B element</option>
  <option value="c"> C element</option>
  <option value="d"> D element</option>
  <option value="e"> E element</option>
  <option value="f"> F element</option>

</select>
 
<button id="ShowSelected"> Show Selected</button> 

Ответ №3:

Добро пожаловать в Stack Overflow!

Итак, у вас <select> есть класс selectpicker . Мы можем использовать это для выбора вашего <select> !

Попробуйте следующее, чтобы получить свое значение:

 document.querySelector(".selectpicker").value;
 

Или, если у вас их несколько <select> , вы можете использовать

 [...document.querySelectorAll(".selectpicker")].forEach(opt => {
   console.log(opt.value)
});
 

Надеюсь, это немного прояснит ситуацию.

Комментарии:

1. И как я могу выбрать значение из выбранной строки?