无法从数组而不是值获取标签
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())
})
所以我使用数组来填充下拉菜单,现在这部分效果很好。我使用该值来帮助计算服务成本,并使用标签向用户显示选项名称。我现在的问题是我的表格发送的是价值(只是价格)而不是标签。如果我的 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())
})