2016-11-10 7 views
0

「計算する」ボタンをクリックしようとすると、数値を平方根に入力するだけで動作しますが、一方で、ボックス2に数値を入力しようとすると、 box1に何かを表示してください。 ConvertToSqrt()とConvertToNum()を含む別の関数を追加する必要がありますか?2つの関数を実行できません

<script type="text/javascript"> 

    function ConvertToSqrt() 
{ 
    var num, sqrt; 
    num = parseFloat(document.getElementById('box1').value); 
    var sqrt = NumberToSquare(num); 
    box2.value=sqrt; 
} 

function ConvertToNum() 
{ 
    var sqrt, num; 
    sqrt = parseFloat(document.getElementById('box2').value); 
    num = SquareToNum(sqrt); 
    box1.value=num; 
} 

function NumberToSquare(num) 
{ 
    var sqrt; 
    sqrt = Math.sqrt(num); 
    return sqrt; 
} 

function SquareToNumber(sqrt) 
{ 
    var num; 
    num = Math.pow(sqrt,2); 
    return num; 
} 
    </script> 

<body> 
    <div style="border: solid; width: 300px; background-color: #83CAFF"> 

    <table> 
    <th></th> <th>Calculater</th> 
    <tr> 
    <th>Enter Number:</th><th><input type="text" id="box1"></th> 
    <tr> 
    <th>SquareRoot:</th><th><input type="text" id="box2"></th> 
    <tr> 
    <th></th><th><input type="button" value="Calculate" 
    onclick="ConvertToNum(); ConvertToSqrt();"> 
    </table> 
    </div> 
    </body> 
    </html> 
+0

私は[Unobtrusive JavaScript](https://en.wikipedia.org/wiki/Unobtrusive_JavaScript)についてお伝えすることをお勧めしますか? – icecub

+0

コンソールのエラーを確認してください。デバッガを使用してコードをトレースします。 –

答えて

0

はい、あなたはConvertToSqrtを(含む別の機能を追加する必要があります)とConvertToNum()、およびそれがunmaintainableですので、あなたがHTMLでイベントをバインドするべきではありません、ただ、addEventListenerを使うのかJavaScriptでそれを行う他の人

1

これは私がやる方法です。あなたがjqueryを使いたいなら、それはかなり簡単です。

UPDATE:

var box1 = document.getElementById("box1"); 
 
var box2 = document.getElementById("box2"); 
 
var resetButton = document.getElementById("reset"); 
 

 
resetButton.onclick = function(){ 
 
    box1.value = ""; 
 
    box2.value = ""; 
 
}; 
 

 
//--------------------------------------------- 
 

 
box1.onkeyup = function(){ 
 
    box2.value = ConvertToSqrt(box1.value); 
 
}; 
 

 
function ConvertToSqrt(num) 
 
{ 
 
    var sqrt = NumberToSquare(num); 
 
    return sqrt; 
 
} 
 

 
function NumberToSquare(num) 
 
{ 
 
    var sqrt = Math.sqrt(num); 
 
    return sqrt; 
 
} 
 

 
//--------------------------------------------- 
 

 
box2.onkeyup = function(){ 
 
    box1.value = ConvertToNum(box2.value); 
 
}; 
 

 
function ConvertToNum(sqrt) 
 
{ 
 
    var num = SquareToNumber(sqrt); 
 
    return num; 
 
} 
 

 
function SquareToNumber(sqrt) 
 
{ 
 
    var num = Math.pow(sqrt,2); 
 
    return num; 
 
}
<div style="border: solid; width: 300px; background-color: #83CAFF"> 
 

 
    <table> 
 
    <th></th> <th>Calculater</th> 
 
    <tr> 
 
    <th>Enter Number:</th><th><input type="text" id="box1"></th> 
 
    <tr> 
 
    <th>SquareRoot:</th><th><input type="text" id="box2"></th> 
 
    <tr> 
 
    <th></th><th><input id="reset" type="button" value="reset"> 
 
    </table> 
 
    </div> 
 
    </body>

あなたは以下のSquareToNumber機能をmissspelt PLAIN JSに変更。 SquareToNumでした。

function ConvertToNum() { 
    var sqrt, num; 
    sqrt = parseFloat(document.getElementById('box2').value); 
    num = SquareToNumber(sqrt); 
    //num = SquareToNum(sqrt); 
    box1.value = num; 
} 
+0

私はそれを修正した後でさえ、それでも動作しません –

+0

私はjequryの使い方がわかりません。 HTMLとJavaScriptのやり方はありますか? –

+0

OK、上記をJavascriptに変更しました。 – Icewine

関連する問題