如何将所选选项放入数组中取决于用户的选择


How to put the selected options in an array depends on user selection?

我想获取所选选项的值并使用 AJAX 创建一个数组。我有这个代码,

<select class="form-control" name="cols[]" multiple="multiple" id="cols[]" required="required">
  <option value="val1">uploaded to webgis</option>
  <option value="val2">Remarks on upload</option>
  <option value="val3">Level of Approval</option>
  <option value="val4">Date Approved</option>
  <option value="val5">Year Approved</option>
</select>

我将如何使用 AJAX 将其放入数组中? 例如,用户选择了 val4,然后接下来是 val5,然后接下来是 val1。 我想要实现的是根据用户选择对它们进行排序,array(val4,val5,val1)。

使用 .change()

捕获更改发生后选择的更改事件 获取所有选定的选项值,然后使用 .map() 将数组或对象中的所有项目转换为新的项目数组。

$('.form-control').change(function() {
  var optionvalue = $("option:selected", this).map(function() {
    return this.value
  }).get().join(", ");
  console.log(optionvalue)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select class="form-control" name="cols[]" multiple="multiple" id="cols[]" required="required">
  <option value="val1">uploaded to webgis</option>
  <option value="val2">Remarks on upload</option>
  <option value="val3">Level of Approval</option>
  <option value="val4">Date Approved</option>
  <option value="val5">Year Approved</option>
</select>

试试这种方式