如何从<选择多=多>中获取所有选定的值?

2022-08-30 02:06:29

似乎很奇怪,我找不到这个已经问过的,但它在这里!

我有一个如下的html:

<select id="select-meal-type" multiple="multiple">
    <option value="1">Breakfast</option>
    <option value="2">Lunch</option>
    <option value="3">Dinner</option>
    <option value="4">Snacks</option>
    <option value="5">Dessert</option>
</select>

我如何获取用户在javascript中选择的所有值(数组?)?

例如,如果用户选择了“午餐和零食”,则我需要一个包含 { 2, 4 } 的数组。

这似乎应该是一项非常简单的任务,但我似乎做不到。

谢谢。


答案 1

除非有人问JQuery问题,否则应该首先用标准的javascript来回答这个问题,因为很多人在他们的网站上不使用JQuery。

从 RobG 如何使用 JavaScript 获取多选框的所有选定值?

  function getSelectValues(select) {
  var result = [];
  var options = select && select.options;
  var opt;

  for (var i=0, iLen=options.length; i<iLen; i++) {
    opt = options[i];

    if (opt.selected) {
      result.push(opt.value || opt.text);
    }
  }
  return result;
}

答案 2

通常的方式:

var values = $('#select-meal-type').val();

文档中

对于元素,该方法返回一个包含每个选定选项的数组;<select multiple="multiple">.val()