複数選択したフォームがあります。 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>
この例は、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>
Jqueryを使用してそれを解決できます。
get_values=function(){
var retval = [];
$("#myarray:selected").each(function(){
retval .Push($(this).val());
});
return retval;
};