在 HTML select 下拉框的 <option> 标签下传递不同的值
Passing different values under the <option> tag in HTML select drop box
新手尽力!
Objective:一个下拉框,允许客户select选择(房间数量)。然后,他们的 selected 选择将在两个不同的位置填充成本(报价)。第一个是每月费用,第二个是每年费用。
因此,我需要将不同的值传递给这些框,因为它们会显示每月和每年的结果。
谁能帮忙,我目前只能填充一个结果。
提前致谢。
function myFunction() {
var x = document.getElementById("rooms").value;
document.getElementById("monthlycost").innerHTML = x;
}
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="3,500"> 1-15
<option value="4,500"> 16-30
<option value="5,000"> 31-50
<option value="5,500"> 51-75
<option value="6,500"> 76-100
<option value="8,000"> 101-125
<option value="9,500"> 126-150
</select>
<p id="monthlycost"></p>
您可以在全局对象上存储价格:
var prices = {
"15": {
month: 150,
year: 3500
},
"30": {
month: 200,
year: 4500
}
...
}
然后从组合框中获取相应的值:
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="15"> 1-15
<option value="30"> 16-30
<option value="50"> 31-50
<option value="75"> 51-75
<option value="100"> 76-100
<option value="125"> 101-125
<option value="150"> 126-150
</select>
function myFunction() {
var x = document.getElementById("rooms").value;
if (prices[x]) {
var monthPrice = prices[x].month;
var yearPrice = prices[x].year;
}
}
可以从不同来源(例如ajax)恢复价格对象,并且可以存储以后需要的更多信息。
你的意思是说,你还想根据所选的月度套餐显示年份数据,只需乘以一年中的总月数即可。这是片段,第一个显示月度数据,第二个将显示基于所选月度数据的年度数据:
function myFunction() {
var x = document.getElementById("rooms").value;
document.getElementById("demo").innerHTML = x;
document.getElementById("demo1").innerHTML = parseInt(x.replace(/[,.]/g , '')) * 12;
}
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="3,500"> 1-15
<option value="4,500"> 16-30
<option value="5,000"> 31-50
<option value="5,500"> 51-75
<option value="6,500"> 76-100
<option value="8,000"> 101-125
<option value="9,500"> 126-150
</select>
<p id="demo"></p>
<p id="demo1"></p>
更改您的功能并在您的 html
上添加 <p id="demoYear"></p>
function myFunction() {
var x = document.getElementById("rooms").value;
document.getElementById("monthlycost").innerHTML = x;
var str = x;
str = str.replace(/,/g, "");
document.getElementById("demoYear").innerHTML = parseInt(str, 10)*12;
document.getElementById("demo").innerHTML = x;
}
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="3,500"> 1-15
<option value="4,500"> 16-30
<option value="5,000"> 31-50
<option value="5,500"> 51-75
<option value="6,500"> 76-100
<option value="8,000"> 101-125
<option value="9,500"> 126-150
</select>
<p id="demo"></p>
<p id="demoYear"></p>
如果您正在创建下拉列表客户端,您可以在下拉列表中添加另一个属性,例如
<select id="leave" onchange="leaveChange(this.selectedIndex)">
<option year="1" value="5">Get Married</option>
<option year="2" value="10">Have a Baby</option>
<option year="3" value="15">Adopt a Child</option>
<option year="4" value="20">Retire</option>
<option year="5" value="25">Military Leave</option>
<option year="6" value="30">Medical Leave</option>
</select>
<div id="message"></div>
<div id="year"></div>
<script>
function leaveChange(index) {
document.getElementById("message").innerHTML =
document.getElementById("leave").value;
var e = document.getElementById("leave");
var y = e.options[e.selectedIndex].getAttribute('year');
document.getElementById("year").innerHTML = y;
}
</script>
新手尽力!
Objective:一个下拉框,允许客户select选择(房间数量)。然后,他们的 selected 选择将在两个不同的位置填充成本(报价)。第一个是每月费用,第二个是每年费用。
因此,我需要将不同的值传递给这些框,因为它们会显示每月和每年的结果。
谁能帮忙,我目前只能填充一个结果。
提前致谢。
function myFunction() {
var x = document.getElementById("rooms").value;
document.getElementById("monthlycost").innerHTML = x;
}
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="3,500"> 1-15
<option value="4,500"> 16-30
<option value="5,000"> 31-50
<option value="5,500"> 51-75
<option value="6,500"> 76-100
<option value="8,000"> 101-125
<option value="9,500"> 126-150
</select>
<p id="monthlycost"></p>
您可以在全局对象上存储价格:
var prices = {
"15": {
month: 150,
year: 3500
},
"30": {
month: 200,
year: 4500
}
...
}
然后从组合框中获取相应的值:
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="15"> 1-15
<option value="30"> 16-30
<option value="50"> 31-50
<option value="75"> 51-75
<option value="100"> 76-100
<option value="125"> 101-125
<option value="150"> 126-150
</select>
function myFunction() {
var x = document.getElementById("rooms").value;
if (prices[x]) {
var monthPrice = prices[x].month;
var yearPrice = prices[x].year;
}
}
可以从不同来源(例如ajax)恢复价格对象,并且可以存储以后需要的更多信息。
你的意思是说,你还想根据所选的月度套餐显示年份数据,只需乘以一年中的总月数即可。这是片段,第一个显示月度数据,第二个将显示基于所选月度数据的年度数据:
function myFunction() {
var x = document.getElementById("rooms").value;
document.getElementById("demo").innerHTML = x;
document.getElementById("demo1").innerHTML = parseInt(x.replace(/[,.]/g , '')) * 12;
}
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="3,500"> 1-15
<option value="4,500"> 16-30
<option value="5,000"> 31-50
<option value="5,500"> 51-75
<option value="6,500"> 76-100
<option value="8,000"> 101-125
<option value="9,500"> 126-150
</select>
<p id="demo"></p>
<p id="demo1"></p>
更改您的功能并在您的 html
上添加<p id="demoYear"></p>
function myFunction() {
var x = document.getElementById("rooms").value;
document.getElementById("monthlycost").innerHTML = x;
var str = x;
str = str.replace(/,/g, "");
document.getElementById("demoYear").innerHTML = parseInt(str, 10)*12;
document.getElementById("demo").innerHTML = x;
}
<select id="rooms" onchange="myFunction()">
<option value="">-- Select Number --</option>
<option value="3,500"> 1-15
<option value="4,500"> 16-30
<option value="5,000"> 31-50
<option value="5,500"> 51-75
<option value="6,500"> 76-100
<option value="8,000"> 101-125
<option value="9,500"> 126-150
</select>
<p id="demo"></p>
<p id="demoYear"></p>
如果您正在创建下拉列表客户端,您可以在下拉列表中添加另一个属性,例如
<select id="leave" onchange="leaveChange(this.selectedIndex)">
<option year="1" value="5">Get Married</option>
<option year="2" value="10">Have a Baby</option>
<option year="3" value="15">Adopt a Child</option>
<option year="4" value="20">Retire</option>
<option year="5" value="25">Military Leave</option>
<option year="6" value="30">Medical Leave</option>
</select>
<div id="message"></div>
<div id="year"></div>
<script>
function leaveChange(index) {
document.getElementById("message").innerHTML =
document.getElementById("leave").value;
var e = document.getElementById("leave");
var y = e.options[e.selectedIndex].getAttribute('year');
document.getElementById("year").innerHTML = y;
}
</script>