web-dev-qa-db-ja.com

HTML選択複数はonchangeイベントですべての値を取得します

複数選択したフォームがあります。 onchangeイベントで選択したすべての値を取得したいのですが、これが可能かどうかわかりません。 「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>
6
user3065901

この例は、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;
}
<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>
12
Thomas Theunen

Jqueryを使用してそれを解決できます。

get_values=function(){
    var retval = [];    
    $("#myarray:selected").each(function(){
        retval .Push($(this).val()); 
    });
    return retval;
};
3
PhuLuong