无法从数组而不是值获取标签

Trouble getting label from array instead of value

所以我使用数组来填充下拉菜单,现在这部分效果很好。我使用该值来帮助计算服务成本,并使用标签向用户显示选项名称。我现在的问题是我的表格发送的是价值(只是价格)而不是标签。如果我的 paypal 按钮是我的提交按钮,我可能需要它来完成这两项工作?我不确定。现在我只是将表格发送到不和谐。 HTML 特定选择菜单

   <fieldset>
      <label for="rank-tourn">
        Select Tournament Title
      </label>

      <select id="rank-tourn" name="Desired Tournament Rank" class="menus form-select" onchange="onChangeCurrent()">
        <option value="0" label="" >Select</option>
      </select>
      
    </fieldset> 

java 用于填充列表

function buildOptList(select, id) {
  select.innerHTML = null;

  //alert("Populate list");
  for (var i = id; i < Rankings.length; i++) {
    if ((id == 0) && (i == Rankings.length)) {
        // do nothing
    } else {
        var el = document.createElement("option");
        el.textContent = Rankings[i].label;
        el.value = Rankings[i].value;
        select.appendChild(el);
      }
    }
  }

我的数组

var Rankings = [{
  "id": 1,
  "value": 10,
  "label": "Bronze Title",
}, {
  "id": 2,
  "value": 10,
  "label": "Silver Title",
}, {
  "id": 3,
  "value": 15,
  "label": "Gold Title",
}, {
  "id": 4,
  "value": 20,
  "label": "Platinum Title",
}, {
  "id": 5,
  "value": 25,
  "label": "Diamond Title",
}, {
  "id": 6,
  "value": 30,
  "label": "Champion Title",
}, {
  "id": 7,
  "value": 40,
  "label": "Grand Champion Title",
}, {
  "id": 8,
  "value": 80,
  "label": "Supersonic Legend Title",
}];

我也尝试过使用 jquery 尝试将选择标签复制到隐藏字段,但我也遇到了麻烦。

这是我的尝试 jquery: HTML

      <input type='hidden' id='hidden' value='0' label=''/>

JQUERY

$("#rank-tourn").change(function () {
    $("#hidden").text($(this).text());
    alert($(this).text())
})

目前,此警报会同时更改每个标签。我试过将 :selected 添加到 rank-tourn,然后它无法提醒。

https://jsfiddle.net/Popo74123/q92jh1p0/465/如果更简单的话,这是我的代码。

只需删除这一行:

el.value = Rankings[i].value;

当一个选项没有明确的值时,它的文本将成为值。

this.text()会得到所有的值,你需要找到伪选择器:selected来显示被选中的那个

$("#rank-tourn").change(function () {
    $("#hidden").text($(this).find(':selected').text());
    alert($(this).find(':selected').text())
})