我在JS中使用非常简单的计算器时遇到了问题。 我希望它能在一个方框中显示结果,但我不知道我做错了什么。 我的代码中可能还有一些可能不正确的东西...... 请帮帮我!
使用Javascript:
document.getElementById('submit').onclick=function() {
num1 = parseFloat(document.getElementById('valueA').value);
num2 = parseFloat(document.getElementById('valueB').value);
arithmeticOperator = document.getElementById('arithmeticOperator').value;
switch(arithmeticOperator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if(num2 != 0)
{
result = num1 / num2;
}else {
result = 'Dela inte med 0!';
}
break;
default:
result = 'Error';
}
document.getElementById('calcForm').onclick=output;
window.alert('result');
};

<!DOCTYPE html>
<html>
<head>
<title>blabla</title>
<meta charset="utf-8"/>
<script src="js.js" defer></script>
</head>
<body>
<form name="calcForm" id="calcForm">
<p><input type="number" name="valueA" placeholder="Värde A" /></p>
<p><input type="number" name="valueB" placeholder="Värde B" /></p>
<select name="arithmeticOperator">
<option value="+">Addition</option>
<option value="-">Subtraktion</option>
<option value="/">Division</option>
<option value="*">Multiplication</option>
</select>
<button type="submit">Räkna ut</button>
<p><output name="result" form="calcForm"></output></p>
</form>
</body>
</html>
&#13;
:)
答案 0 :(得分:2)
答案 1 :(得分:0)
您选择的是id
,但值arithmeticOperator
是您选择框的name
。
试试这个:
<select name="arithmeticOperator" id="arithmeticOperator">
答案 2 :(得分:0)
document.getElementById
通过id
获取元素。您有多种情况需要查找具有其名称或类型的元素。那不行。
document.getElementById('calcForm').onclick=output;
这会尝试将名为output的函数绑定到名为calcForm的元素的click事件。我不知道你在这里想做什么。
要在输入或输出中显示结果,您只需执行
document.getElementById("idOfTheElement").value = result;
答案 3 :(得分:0)
当您似乎渴望了解解决方案时 - 我已经为您创建了this fiddle。
请仔细检查并查看我在您的代码中完成的修改。
许多错误,错别字改变(如其他人所述)包括:
name=
可以换出每个id=
个实例。在javascript中了解差异至关重要。var
开头(包括数组,对象,甚至通常是函数)event.preventDefault()
中的第一行重新编写了javascript代码:
document.getElementById('submitButton').onclick = function(event) {
event.preventDefault();
var num1 = parseFloat(document.getElementById('valueA').value),
num2 = parseFloat(document.getElementById('valueB').value),
arithmeticOperator = document.getElementById('arithmeticOperator').value,
output = document.getElementById('result');
switch(arithmeticOperator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if(num2 != 0)
{
result = num1 / num2;
}else {
result = 'Dela inte med 0!';
}
break;
default:
result = 'Error';
}
output.innerHTML = result;
window.alert(result);
return false;
};
HTML和一些修改:
<form name="calcForm" id="calcForm">
<p><input type="number" id="valueA" placeholder="Värde A" /></p>
<p><input type="number" id="valueB" placeholder="Värde B" /></p>
<select name="arithmeticOperator" id="arithmeticOperator">
<option value="+">Addition</option>
<option value="-">Subtraktion</option>
<option value="/">Division</option>
<option value="*">Multiplication</option>
</select>
<button type="submit" id="submitButton">Räkna ut</button>
<p>Result: <output id="result" form="calcForm"></output></p>
</form>