javascript和html逻辑语句

时间:2016-03-02 01:19:35

标签: javascript html logic

因此,对于一个项目,我被指派制作一个链接到javascript文件的简单html页面。在此页面上有3个整数输入和2个按钮。按钮测试整数是否会形成三角形,第二个按钮将测试整数是否为正三角形。

现在我仍然遇到第一个按钮的问题。 我正在使用该算法:
    A + B&以及c
    一个+ c取代; b
    B + C>一种

如果所有这些都是真的那么语句应该返回为“它形成一个三角形”,而else应该声明它不会返回一个三角形。

我认为我有逻辑和设置权,但是当我去测试时,所有条件都将返回true 任何帮助将非常感激。对不起,如果我的代码有点草率或没有意义,我还在学习。

再次感谢。

HTML文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Triangle Tester</title>
<script src="project3.js" type="text/javascript"></script>
</head>

<body>

<div>
<h1>Triangle Tester</h1>
<p>Please input the length (integer) of the first side of the triangle: </p>
    <input id="t1" type="text" size="3" />

<p>Please input the length (integer) of the second side of the triangle: </p>
    <input id="t2" type="text" size="3" />

<p>Please input the length (integer) of the third side of the triangle: </p>
    <input id="t3" type="text" size="3" />

<br/>
<span id="answer"></span>
<br/>

<button onclick="compute1();">Can these three sizes form a triangle?</button>
<button onclick="compute2();">Can these three sizes form a right triangle?</button>    
</div>

</body>
</html>

JavaScript文件:

// JavaScript Document
function compute1()
{
    var in1 = document.getElementById("t1"); //A
    var in2 = document.getElementById("t2"); //B
    var in3 = document.getElementById("t3"); //C
    var ans = document.getElementById("answer");

    if( (in1.value+in2.value>in3.value)&&
        (in1.value+in3.value>in2.value)&&
        (in2.value+in3.value>in1.value) )
    {
        var result = "These three sides can form a triangle!";
        ans.innerHTML = result;
    }

    else
    {
        var result2 = "These three sides cannot form a triangle!";
        ans.innerHTML = result2;    
    }
}

function compute2()
{
    return 0;   
}

所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

您需要将值解析为数字 - 目前所有输入都是文本,不能用于正确计算结果。假设您的算法正确,请使用:

var in1Val=parseInt(in1.value);
var in2Val=parseInt(in2.value);
var in3Val=parseInt(in3.value);

    if( (in1Val+in2.value>in3Val)&&
        (in1Val+in3Val>in2Val)&&
        (in2Val+in3Val>in1Val) )...

如果存在输入值可能不是数字的风险,您可以使用parseFloat并检查是否返回NaN(如果存在基于非整数的输入)。希望这有助于Gavrif