javascript中的下拉组合

时间:2013-07-18 05:36:31

标签: javascript jquery

我是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的链接。

http://jsfiddle.net/rFXTk/

3 个答案:

答案 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")
                }

            }

        }