0

我是 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/

4

3 回答 3

1

你的问题。在您的 jsfiddle 中,您的函数正在加载中(因为它在 JSFiddle 选项中设置为这样做)。如果它在 onload 中,则仅可用于 onload 函数而不是 HTML 本身。

我的更新:http: //jsfiddle.net/shawn31313/rFXTk/1/

我刚刚更改:onloadNo wrap - in <head>. 我还删除了其中包含未定义变量ele的函数,即使这与问题无关。

于 2013-07-18T05:40:34.803 回答
0

您在此处编写的代码是正确的,但您的小提琴 js 部分还有一行。只需将其从小提琴中删除即可。

唯一的问题是您没有 ChangeData() 的定义,请添加它。您需要添加所有条件。它符合书面条件。

于 2013-07-18T05:51:13.107 回答
0

您在未定义 changedata() 函数中还有一个错误,还有一个问题 changeChart(this.value); 但是函数中没有使用 this.value ,所以我已将您的代码改进为无错误。小提琴演示

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

            }

        }
于 2013-07-18T05:51:14.867 回答