Html在onchange事件中选择多个get all值

use*_*901 5 html javascript select onchange multi-select

我有一个选择倍数的表单.我想在onc​​hange事件中获取所有选定的值,但我不知道这是否可行.我认为"this.value"只返回选中的最后一个元素.

是否有可能在onchange上将所有元素选为数组?

提前致谢.

<select name="myarray[]" id="myarray" class="select2-select req" style="width: 90%;" onChange="get_values(this.value)" multiple>
    {foreach key=key item=value from=$myarray}
         <option value="{$key}" >{$value}</option>
    {/foreach}
</select>
Run Code Online (Sandbox Code Playgroud)

Tho*_*nen 12

没有jQuery,这个例子可能有用:

function getSelectedOptions(sel) {
  var opts = [],
    opt;
  var len = sel.options.length;
  for (var i = 0; i < len; i++) {
    opt = sel.options[i];

    if (opt.selected) {
      opts.push(opt);
      alert(opt.value);
    }
  }

  return opts;
}
Run Code Online (Sandbox Code Playgroud)
<select name="myarray[]" id="myarray" class="select2-select req" style="width: 90%;" onChange="getSelectedOptions(this)" multiple>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用jquery来解决它:

get_values=function(){
    var retval = [];    
    $("#myarray:selected").each(function(){
        retval .push($(this).val()); 
    });
    return retval;
};
Run Code Online (Sandbox Code Playgroud)