2013-09-28 51 views
0

我是JavaScript新手,我试图在单击选择标签时显示单位。我使用了Switch语句,但它没有做任何事情。Javascript onchange选项值

HTML:

<select class="unit_from"> 
    <option value = "Kilogram">Kilogram</option> 
</select> 

<select id="unit_to" onchange="convert()"> 
<option value = "Metric_ton">Metric ton</option> 
<option value = "Kilogram">Kilogram</option> 
<option value = "Gram">Gram</option> 
<option value = "Milligram">Miligram</option> 
<option value = "Mcg">Mcg</option> 
<option value = "Long_ton">Long ton</option> 
<option value = "Stone">Stone</option> 
<option value = "Pound">Pound</option> 
<option value = "Ounce">Ounce</option> 
</select> 
</div> 

<div class="text_input"> 
<input id="txtValue" type="text" /> 
<p id="print_ans"></p> 

当选择了选项值,单位是要被显示在该段ID = print_ans。

的Javascript:

<script> 
function convert() 
    { 
     var kilo = document.getElementById("txtValue").value; 
     var get_unit = convert_unit(); 
    } 

     function convert_unit() 
     { 
      var x; 
      var y = document.getElementById("unit_to").value; 
      switch(y) 
      { 
       case Metric_ton: 
        x = kilo * 0.001; 
        break; 
       case Kilogram: 
        x = kilo * 1; 
        break; 
       case Gram: 
        x = kilo * 1000; 
        break; 
       case Milligram: 
        x = kilo *0.000001; 
        break; 
       case Mcg: 
        x = kilo * 0.000000001; 
        break; 
       case Long_ton: 
        x = kilo * 0.000984207; 
        break; 
       case Stone: 
        x = kilo * 0.00110231; 
        break; 
       case Pound: 
        x = kilo * 0.157473; 
        break; 
       case Ounce: 
        x= kilo * 2.20462; 
        break; 
      } 
      document.getElementById("print_ans").innerHTML = x; 
     } 

例子: http://jsfiddle.net/6Gtcd/4/

+0

使用jQuery!你不会后悔的 – Lance

回答

0

你有几个错误:在您的switch声明你使用的东西,像case Metric_ton:Metric_ton

应该是一个字符串,不是一个变量,所以它应该是写case 'Metric_ton':

kilo没有在功能convert_unit分配一个值,它是函数的范围之外,所以你需要的东西是这样的:

http://jsfiddle.net/6Gtcd/9/

其中kilo被分配一个值在convert_unit之内。事实上,我将convert_unit重命名为convert,并删除了原来的convert函数,因为它似乎没有必要。