セレクトボックスのvalueはPOSTする時は欲しいんだけれど、例えばバリデーションなんかでユーザ側に「この値を入力(選択)しましたよ」って表示したいときはtext部分の値が欲しい。

前提

こういうセレクトボックスがあった時に、value="0"であれば杉下右京を取得したい。

  <select>
    <option value="0">杉下 右京</option>
    <option value="1">亀山 薫</option>
    <option value="2">神戸 尊</option>
    <option value="3">甲斐 享</option>
    <option value="4">冠城 亘</option>
  </select>

実装

let result = document.querySelector('.result');
let select = document.querySelector('select');

select.addEventListener('change', function() {
  let options = this.options;
  result.textContent = options[options.selectedIndex].text;
});

対象のselect要素で選択中のoption要素からテキストを取得だけ。