2015-09-22 5 views
0

Я пытаюсь показать это предупреждение, но оно не работает, я пробовал почти все, но ничего на самом деле не работает.Невозможно показать окно предупреждения JavaScript

Я попытался вынуть переменную предупреждения, и она работает, но мне нужно, чтобы показать результат умножения.

Затем я попытался просто добавить переменную в поле предупреждения, но она не работает, и я не могу найти, где проблема.

<!DOCTYPE html> 
<html> 
<head>  
<title>Multiplication</title> 
</head> 
<body> 
    <h2> Ange 2 tal för att multiplicera</h2> 
<table border="0"> 
    <tr> 
    <th>Första Tal</th> 
    <th>Andra Tal</th> 

    </tr> 
    <tr> 
    <td><input id="box1" type="text" oninput="calculate()" /></td> 
    <td><input id="box2" type="text" oninput="calculate()" /></td> 
    <td><input type="button" onclick="disp_alert()" value="Multiplicera" /></td> 

    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
</table> 

    <script> 


function calculate() { 
    var myBox1 = document.getElementById('box1').value; 
    var myBox2 = document.getElementById('box2').value; 
    var result = document.getElementById('result'); 
    var myResult = myBox1 * myBox2; 
    result.value = myResult;  
} 
    function disp_alert() { 
     alert("Resultaten blir"+result.value); 
    } 

    </script> 

</body> 
</html> 
+4

'result', и, таким образом' result.value' существуют только внутри 'стоимость)' функции (. 'disp_alert()' не знает, что такое 'result'. –

+0

Думаю, вам нужно передать какую-то ценность! попробуйте это для вашей кнопки: 'onclick =" disp_alert (calculate()) "' – Onilol

+0

результат - это ваша локальная переменная .. ее значение destroys –

ответ

0

Вам нужно всего лишь вычислить, когда вы нажимаете кнопку.

function calculate() { 
 
    var myBox1 = document.getElementById('box1').value; 
 
    var myBox2 = document.getElementById('box2').value; 
 
    return myBox1 * myBox2; 
 
} 
 

 
function disp_alert() { 
 
    var product = calculate(); 
 
    alert(product); 
 
}
<body> 
 
    <h2> Ange 2 tal för att multiplicera</h2> 
 
<table border="0"> 
 
    <tr> 
 
    <th>Första Tal</th> 
 
    <th>Andra Tal</th> 
 

 
    </tr> 
 
    <tr> 
 
    <td><input id="box1" type="text" /></td> 
 
    <td><input id="box2" type="text" /></td> 
 
    <td><input type="button" onclick="disp_alert()" value="Multiplicera" /></td> 
 

 
    </tr> 
 
    <tr> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
</table> 
 
</body>

+0

Я считаю, что было бы лучше, если бы он разделил проблемы. Наличие функции, выполняющей несколько вещей, не очень хорошо. – Onilol

+0

Это хороший момент. Наверное, я мог бы переименовать 'disp_alert'' для' вычисления' – tcigrand

+0

Даже тогда было бы лучше, если бы он был отделен. Подумайте об этом. Вы можете рассчитать эти значения в миллионах способов, например, вы можете отображать их по-разному. В этом случае кажется несущественным из-за того, насколько маленький код на самом деле, но в больших объемах кода, создающих функции для конкретных задачи - это путь. – Onilol

2

Переменная result существует только в пределах функции calculate(). Вам нужно снова получить значение в функции disp_alert().

function disp_alert() { 
    var result = document.getElementById('result'); 
    alert("Resultaten blir"+result.value); 
} 
0

Попробуйте это на кнопку:

<td><input type="button" onclick="disp_alert(calculate())" value="Multiplicera" /></td> 

Ваш result переменная находится в рамках вашей функции calculate() так disp_alert() не знает, что result есть.

var global_result; <---- this variable is accessible to all functions. 

function calculate(){ 
var result; <--- this is a local variable only accessible within this function 
} 

disp_alert(calculate()) <--- calculate innards become available to disp_alert 

Поставив вызов с calculate() внутри disp_alert(), что значение становится доступным.

Смежные вопросы