2016-11-10 6 views
0

Когда я пытаюсь нажать кнопку «рассчитать», она работает только от ввода числа до квадратного корня, но, с другой стороны, когда я пытаюсь поместить номер в свой ящик2, он не будет показать все в коробке1. Должен ли я добавить еще одну функцию, которая включает ConvertToSqrt() и ConvertToNum()?Невозможно выполнить две функции

<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

Могу ли я предлагаю читать о [Ненавязчивый JavaScript] (https://en.wikipedia.org/wiki/Unobtrusive_JavaScript)? – icecub

+0

Проверьте наличие ошибок в консоли. Просматривайте свой код с помощью отладчика. –

ответ

0

да, то вы должны добавить еще одну функцию, которая включает в себя ConvertToSqrt() и ConvertToNum(), и вы не должны связывать события в HTML, потому что это неосновательный, просто использовать addEventListener или другие сделать это в JavaScript

1

Вот как я это сделаю. Если вы хотите использовать jquery, это довольно легко.

UPDATE: ИЗМЕНИТЬ К ЧИСТОЙ JS

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>

вы missspelt функцию SquareToNumber ниже. Был 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