2016-03-02 71 views
1

因此,对于一个项目,我分配了一个简单的HTML页面,链接到一个JavaScript文件。在这个页面上有3个整数输入和2个按钮。按钮测试整数是否会形成三角形,第二个按钮将测试整数是否形成直角三角形。javascript和html逻辑语句

现在我仍然遇到第一个按钮的问题。 我使用的算法:
A + B> C
A + C> B
B + C> A

如果所有的这些都是真的那么语句应该返回为 “它形成了一个三角”其他人应该说明它不会返回一个三角形。

我想我有逻辑和设置的权利,但是当我去测试所有的条件将返回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; 
} 

因此,任何帮助将真正理解。

+0

如果a,b和c都是相同的整数,会不会形成一个三角形? – adeneo

+2

无论如何,一个输入的值总是一个字符串,所以当你做'“2”+“3”时,最终得到的结果是“23”而不是“5”,就像你期望的那样 – adeneo

+0

你是什么值从单个变量中获取,你可以调试/警报和检查吗? – ryadavilli

回答

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

+0

这完美的工作!不知道输入是全部字符串,立即修复它。 – hmy