我是JavaScript新手。我试图让这个下拉组合为一个项目工作,但显然这是行不通的。你能否检查一下这段代码中的错误。
这是html代码。
<select id="chartSelect" onchange="changeChart(this.value);">
<option value="Line">Line Chart</option>
<option value="Pie">Pie Chart</option>
<option value="Map">Choropleth Map</option>
</select>
<select id="dataSelect" onchange="changeData(this.value);">
<option value="House">House Data</option>
<option value="Toilet">Toilet Data</option>
</select>
这是javascript部分;
function changeChart(ele){
var value = chartSelect.options[chartSelect.selectedIndex].value;
if (value==="Pie"){
var dataType = dataSelect.options[dataSelect.selectedIndex].value;
if (dataType === "House"){
alert("This is pie chart(HOUSE)");
}
if (dataType === "Toilet"){
alert("This is pie Chart(TOILET)");
}
}
if(value=="Line"){
var dataType = dataSelect.options[dataSelect.selectedIndex].value;
if(dataType == "House"){
alert("This is line chart(HOUSE)");
}
if (dataType == "Toilet"){
alert("This is line chart(TOILET)");
}
}
};
这是jsfiddle的链接。
答案 0 :(得分:1)
你的问题。在你的jsfiddle中,你的函数正在onload中加载(因为它设置为在JSFiddle选项中这样做)。如果它在onload中,则只能用于onload函数而不能用于HTML本身。
我的更新:http://jsfiddle.net/shawn31313/rFXTk/1/
我刚刚将onload
更改为No wrap - in <head>
。我还删除了其中包含未定义变量ele
的函数,即使这与该问题无关。
答案 1 :(得分:0)
你在这里写的代码是正确的,但你的小提琴js部分有一个额外的行。只需将它从小提琴中移除即可。
唯一的问题是你没有ChangeData()的定义,请添加它。 您需要添加所有条件。它正在处理书面条件。
答案 2 :(得分:0)
你还有一个错误,在changeata()函数中没有定义,还有一件事就是changeChart(this.value);但是函数旁边没有使用this.value,所以我已经将你的代码改进为无错误。Fiddle Demo
function changeChart() {
var value = chartSelect.options[chartSelect.selectedIndex].value;
if (value == "Pie") {
var dataType = dataSelect.options[dataSelect.selectedIndex].value;
if (dataType == "House") {
alert("aakarshan")
}
if (dataType == "Toilet") {
alert("DHAKAL")
}
}
if (value == "Line") {
var dataType = dataSelect.options[dataSelect.selectedIndex].value;
if (dataType == "House") {
alert("BIVAV")
}
if (dataType == "Toilet") {
alert("SATYAL")
}
}
}