javascript 和 html 逻辑语句

javascript and html logic statements

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

现在我仍然无法使用第一个按钮。 我正在使用算法:
a+b>c
a+c>b
b+c>a

如果所有这些都为真,则该语句应 return 为 "It forms a triangle",否则应声明它不会 return 三角形。

我认为我的逻辑和设置都正确,但当我去测试时,所有条件都将 return 为真。
任何帮助将非常感激。抱歉,如果我的代码有点草率或没有意义,我还在学习。

再次感谢。

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;   
}

非常感谢任何帮助。

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

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

有帮助