-1

最近、JavaScript でコード化された三角形の計算について質問しました。基本的に、私は JSLint ( A JavaScript デバッグ機能) に行き、関数とプロシージャ内で何も機能していない理由についてのデータを取得しました。以下のコードを投稿しました。

    <html>
<head>
<link href="stylesheet/stylesheet.css" rel="stylesheet" type="text/css">

<script language="Javascript" type="text/javascript">

/*  Key/Legend
Var
    inp1 = input1
    inp2 = input2
    inp3 = input3
    Triangle_Inputs = Form Name

    */

/* Notes

    In computing, a parser is one of the components in an interpreter or 
    compiler that checks for correct syntax and builds a data structure 
    (often some kind of parse tree, abstract syntax tree or other hierarchical structure) 
    implicit in the input tokens.


    Technique
    if (side1 is equal to side2 AND side 2 is equal to side3) {equalitateral}

    if (side1 is equal to side2 AND side 2 doesn't equal to side3) {isosceles}

    if (side1 doesn't equal to side2 AND side2 doesn't equal to side 3 AND side 3 doesn't equal side 1) {scalene}

    http://www.w3schools.com/js/js_comparisons.asp

    */


function checkinputs(){
/* Var = parseInt(document.Name_Of_Element_Form.Field_Name(Input).value); */
/* Input Fields */
inp1 = parseInt(document.Triangle_Inputs.input1.value);
inp2 = parseInt(document.Triangle_Inputs.input2.value);
inp3 = parseInt(document.Triangle_Inputs.input3.value);
/* Side options */
sideA = (inp1);
sideB = (inp2);
sideC = (inp3);
    if (sideA == sideB && sideB == sideC) {
    alert("Equalateral");
    }
    if (sideA == sideB && != sideC) {
    alert("Isosceles");
    }
    if (sideA != sideB == sideC) {
    alert("Isosceles");
    }
    if (sideA != sideB != sideC != sideA) {
    alert("Scalene!");
    }
}
</script>


</head>
<body>
<div id="Container">

<div id="Header"><h1></h1></div>

        <div id="Content_1">
                <div id="Explanation">
                This calculator will determine what
                triangle you have made depending on
                the integer values in the input fields.

                </div>
                <div id="Form">
                    <FORM NAME="Triangle_Inputs" METHOD="GET">
                    Enter the triangle values below: <br>
                    <p>
                    <h4>Side 1: </h4><BR>
                    <INPUT TYPE="Integer" NAME="input1" VALUE=""><P>
                    <h4>Side 2: </h4><BR>
                    <INPUT TYPE="Integer" NAME="input2" VALUE=""><P>
                    <h4>Side 3:</h4> <BR>
                    <INPUT TYPE="Integer" NAME="input3"  VALUE=""><P>
                    <INPUT TYPE="button" NAME="Submit" Value="Submit" Class="Submit" onClick="checkinputs()">
                    </FORM>
                </div>
                <div id="Verbal_Output">
                    <h2>You made a:</h2>
                    <p>        
                    <h2>Triangle</h2>
                </div>

            </div>
            <p>
            <p>
        <div id="Content_2">

        <div id="Image_Output">asdad</div>
    </div>      
</div>



</body>
</html>

これは、div タグを無視したサイトそのものです。ボタンをクリックできない理由と、JSlint が言う理由を知りたいです。

inp1 = parseInt(document.Triangle_Inputs.input1.value);

行 39 文字 1 'inp1' は、定義される前に使用されました。

inp1、inp2、および inp3 の場合。

編集:

変数の使用についての私の理解が間違っていました。「、」を使用せずにリストしていました。代わりに、1 つの変数を呼び出していましたが、残りはそうではありませんでした。

4

1 に答える 1

1

これを試して:

var checkinputs = function() {
/* Input Fields */
var sideA = parseInt(document.Triangle_Inputs.input1.value),
    sideB = parseInt(document.Triangle_Inputs.input2.value),
    sideC = parseInt(document.Triangle_Inputs.input3.value);

alert (sideA == sideB && sideB == sideC) ? 'Equilateral' :
      (sideA == sideB && sideA != sideC) ? 'Isosceles' :
      (sideA != sideB && sideA == sideC) ? 'Isosceles' :
      (sideA != sideB && sideA != sideC && sideB != sideC) ? 'Scalene' :
      'logic needs improvement';
}

また、あなたのロジックに少し欠陥があることに気付いたので、正しいと思われるものに編集しました。

于 2012-09-19T10:58:08.280 に答える