2017-09-26 53 views
0

我有一个窗体的代码,其中包含一些带有不同选项的下拉菜单,并且我还创建了警报弹出消息,以便它们不能选择相同的行星现在。我也有禁用一个输入在一个文本框输入,因为我只能把一个输入。计算行星的重量,并将其输出到输入类型

我的问题是如何根据我选择的下拉框来计算行星的重量?并且在输入类型上打印/显示它意味着如果我选择地球并且我的输入类型(重量)是60N,如果我的第二选择是金星,它将计算我的体重并将其打印/显示为输入类型。

下面大致是我的HTML代码和JavaScript代码。我是JavaScript新手。

HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
    <body> 
    <select name="select1" id="select1" onchange="process_selection(this)"> 
<option value="">-- choose one --</option> 
    <option value="0">Earth</option> 
    <option value="1">Venus</option> 
    <option value="2">Mars</option> 
    <option value="3">Jupiter</option> 
    <input type="text" name="123" id="text1" 
    onchange="process_selection(this)" placeholder=""> N 
</select> 
    <br> 

    <select name="select2" id="select2" onchange="process_selection(this)"> 
<option value="">-- choose one --</option> 
    <option value="0">Earth</option> 
    <option value="1">Venus</option> 
    <option value="2">Mars</option> 
    <option value="3">Jupiter</option> 

    <input type="text" name = "123" id="text2" 
    onchange="process_selection(this)" placeholder=""> N 


    </select> 

的javascript:

<script type="text/javascript"> 

function process_selection(obj) 
{ 


var input1 = document.getElementById("select1").value; 
var input2 = document.getElementById("select2").value; 
var texta = document.getElementById("text1"); 
var textb = document.getElementById("text2"); 


if(input1 == input2) 
{ 
    alert("Please select other planet"); 
} 
if(texta.value != "") 
    { 
    document.getElementById("text2").disabled = true ; 

    } 
if(textb.value != "") 
{ 
    document.getElementById("text1").disabled = true ; 

} 

    // var xx = input1.options[input1.selectedIndex].value; 
    var SurfaceGravityEarth = 1; 
    var SurfaceGravityVenus= 0.907; 
    var SurfaceGravityMars= 0.377; 
    var SurfaceGravityJupiter= 2.364; 
    var weight1 , weight2; 
    // var sg1; 
    // var sg2; 

    if (input1 == "0" ) 
{ 

weight1 = document.getElementById("text1") * SurfaceGravityEarth; 
} 

    if (input2 == "1" ) 
    { 
    weight2 = document.getElementById("text1") * SurfaceGravityVenus ; 
    document.getElementById("text2").value= weight2 ; 
    } 

} 

我被困在计算部分。

+0

你从document.getElement('xxxx')得到的是一个DOM元素类型。在这种情况下,你不能只是在它上面进行乘法操作,也许你需要使用'document.getElement('xxxx').value'来获取该元素的值,然后将该字符串值转换为数字类型,以便可以用它来做数学工作 – Noah

回答

1

首先,获取textbox的值并将其转换为数字类型(整数,浮点数等)。 尝试以下代码:

weight1 = parseInt(document.getElementById("text1").value) * SurfaceGravityEarth; 

使用parseInt函数()转换为整数类型。 如果你想转换为浮点型使用parseFloat() 或者你可以简单地使用整数和浮点数的Number()方法