我的 javascript 计算器不工作
my javascript calculator wont work
每当我添加包含所有输入的 div 框时,它们就会停止工作,请有人帮忙。 div 框是我能想到的将输入保持在该布局中的唯一方法。我对 javascript 以及将其整合到 html 还是很陌生。感谢阅读。
#ans_box {
width:500px;
height:30px;
background-color:silver;
position:relative;
margin-bottom:90%;
}
#demo {
position:relative;
width:500px;
height:30px;
}
.button {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
z-index:-1;
float:left;
padding:5px 8px;
}
.button2 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
margin-top:6%;
margin-right:1%;
z-index:-2;
padding:5px 8px;
}
.button3 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
z-index:-3;
padding:5px 8px;
}
.button4 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
z-index:-4;
padding:5px 8px;
}
#boundry{
width:180px;
height:500px;
}
<!DOCTYPE html>
<html>
<body>
<form name="calculator" >
<div id="boundry">
<input class="button" type="button" value="1" onClick="document.calculator.ans.value+='1'">
<input class="button" type="button" value="2" onClick="document.calculator.ans.value+='2'">
<input class="button" type="button" value="3" onClick="document.calculator.ans.value+='3'">
<input class="button" type="button" value="+" onClick="document.calculator.ans.value+='+'">
<input class="button2" type="button" value="4" onClick="document.calculator.ans.value+='4'">
<input class="button2" type="button" value="5" onClick="document.calculator.ans.value+='5'">
<input class="button2" type="button" value="6" onClick="document.calculator.ans.value+='6'">
<input class="button2" type="button" value="-" onClick="document.calculator.ans.value+='-'">
<input class="button3" type="button" value="7" onClick="document.calculator.ans.value+='7'">
<input class="button3" type="button" value="8" onClick="document.calculator.ans.value+='8'">
<input class="button3" type="button" value="9" onClick="document.calculator.ans.value+='9'">
<input class="button3" type="button" value="*" onClick="document.calculator.ans.value+='*'">
<input class="button4" type="button" value="/" onClick="document.calculator.ans.value+='/'">
<input class="button4" type="button" value="0" onClick="document.calculator.ans.value+='0'">
<input class="button4" type="reset" value="Reset">
<input class="button" type="button" value="=" onClick="document.calculator.ans.value=eval(document.calculator.ans.value)">
<input type="textfield" name="ans" value="">
</div>
</form>
</body>
</html>
实际上您的点击有效....但由于使用了 z-index,它没有显示。
这是一个正在工作的 fiddle link ...。
为了您的方便..这里是 HTML 代码:
<form name="calculator" >
<div id="boundry">
<input class="button" id="box" type="button" value="1"
onClick="document.calculator.ans.value+='1'">
<input class="button" id="box" type="button" value="2"
onClick="document.calculator.ans.value+='2'">
<input class="button" id="box" type="button" value="3"
onClick="document.calculator.ans.value+='3'">
<input class="button" id="box" type="button" value="+"
onClick="document.calculator.ans.value+='+'">
<input class="button" id="box1" type="button" value="4"
onClick="document.calculator.ans.value+='4'">
<input class="button6" id="box1" type="button" value="5"
onClick="document.calculator.ans.value+='5'">
<input class="button7" id="box1" type="button" value="6"
onClick="document.calculator.ans.value+='6'">
<input class="button8" id="box1" type="button" value="-" onClick="document.calculator.ans.value+='-'">
<input class="button9" id="box3" type="button" value="7" onClick="document.calculator.ans.value+='7'">
<input class="button10" id="box3" type="button" value="8" onClick="document.calculator.ans.value+='8'">
<input class="button11" id="box3" type="button" value="9" onClick="document.calculator.ans.value+='9'">
<input class="button12" id="box3" type="button" value="*" onClick="document.calculator.ans.value+='*'">
<input class="button13" id="box4" type="button" value="/" onClick="document.calculator.ans.value+='/'">
<input class="button14" id="box4" type="button" value="0" onClick="document.calculator.ans.value+='0'">
<input class="button15" id="box4" type="reset" value="Reset">
<input class="button" id="box4" type="button" value="=" onClick="document.calculator.ans.value=eval(document.calculator.ans.value)">
<input type="textfield" name="ans" value="">
</div>
</form>
和CSS:
#ans_box {
width:500px;
height:30px;
background-color:silver;
position:relative;
margin-bottom:90%;
}
#demo {
position:relative;
width:500px;
height:30px;
}
#box {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
padding:5px 8px;
}
#box1 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
margin-top:6%;
margin-right:1%;
padding:5px 8px;
}
#box3 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
padding:5px 8px;
}
#box4 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
padding:5px 8px;
}
#boundry{
width:180px;
height:500px;
}
稍微修改一下你的css和html...添加另一个id以便清楚地理解。
您的 javascript 和 HTML 代码绝对完美,没有任何问题。
问题是 CSS.
所有 4 个按钮 类 都有一个 z-index: value;
这使所有按钮都不可点击。删除 css 将使计算器完美运行。
为了让您更多地了解 javascript,我将教您一些有关函数的知识。它们是 javascript 代码片段,可以用简单的一行重新运行。
在你的情况下:
<script>
function setToAns(element) {
document.calculator.ans.value += element.value;
}
</script>
如果您将此添加到您的 html 中,它不会执行任何操作。
但是如果你把它添加到你的按钮中。
<input class="button" type="button" value="1" onClick="setToAns(this);">
它将运行 函数。您可以将其用作普通按钮(不是 = 按钮)(onclick 中的 this
是它来自 运行 的元素)。
希望对您有所帮助。
每当我添加包含所有输入的 div 框时,它们就会停止工作,请有人帮忙。 div 框是我能想到的将输入保持在该布局中的唯一方法。我对 javascript 以及将其整合到 html 还是很陌生。感谢阅读。
#ans_box {
width:500px;
height:30px;
background-color:silver;
position:relative;
margin-bottom:90%;
}
#demo {
position:relative;
width:500px;
height:30px;
}
.button {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
z-index:-1;
float:left;
padding:5px 8px;
}
.button2 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
margin-top:6%;
margin-right:1%;
z-index:-2;
padding:5px 8px;
}
.button3 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
z-index:-3;
padding:5px 8px;
}
.button4 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
z-index:-4;
padding:5px 8px;
}
#boundry{
width:180px;
height:500px;
}
<!DOCTYPE html>
<html>
<body>
<form name="calculator" >
<div id="boundry">
<input class="button" type="button" value="1" onClick="document.calculator.ans.value+='1'">
<input class="button" type="button" value="2" onClick="document.calculator.ans.value+='2'">
<input class="button" type="button" value="3" onClick="document.calculator.ans.value+='3'">
<input class="button" type="button" value="+" onClick="document.calculator.ans.value+='+'">
<input class="button2" type="button" value="4" onClick="document.calculator.ans.value+='4'">
<input class="button2" type="button" value="5" onClick="document.calculator.ans.value+='5'">
<input class="button2" type="button" value="6" onClick="document.calculator.ans.value+='6'">
<input class="button2" type="button" value="-" onClick="document.calculator.ans.value+='-'">
<input class="button3" type="button" value="7" onClick="document.calculator.ans.value+='7'">
<input class="button3" type="button" value="8" onClick="document.calculator.ans.value+='8'">
<input class="button3" type="button" value="9" onClick="document.calculator.ans.value+='9'">
<input class="button3" type="button" value="*" onClick="document.calculator.ans.value+='*'">
<input class="button4" type="button" value="/" onClick="document.calculator.ans.value+='/'">
<input class="button4" type="button" value="0" onClick="document.calculator.ans.value+='0'">
<input class="button4" type="reset" value="Reset">
<input class="button" type="button" value="=" onClick="document.calculator.ans.value=eval(document.calculator.ans.value)">
<input type="textfield" name="ans" value="">
</div>
</form>
</body>
</html>
实际上您的点击有效....但由于使用了 z-index,它没有显示。 这是一个正在工作的 fiddle link ...。 为了您的方便..这里是 HTML 代码:
<form name="calculator" >
<div id="boundry">
<input class="button" id="box" type="button" value="1"
onClick="document.calculator.ans.value+='1'">
<input class="button" id="box" type="button" value="2"
onClick="document.calculator.ans.value+='2'">
<input class="button" id="box" type="button" value="3"
onClick="document.calculator.ans.value+='3'">
<input class="button" id="box" type="button" value="+"
onClick="document.calculator.ans.value+='+'">
<input class="button" id="box1" type="button" value="4"
onClick="document.calculator.ans.value+='4'">
<input class="button6" id="box1" type="button" value="5"
onClick="document.calculator.ans.value+='5'">
<input class="button7" id="box1" type="button" value="6"
onClick="document.calculator.ans.value+='6'">
<input class="button8" id="box1" type="button" value="-" onClick="document.calculator.ans.value+='-'">
<input class="button9" id="box3" type="button" value="7" onClick="document.calculator.ans.value+='7'">
<input class="button10" id="box3" type="button" value="8" onClick="document.calculator.ans.value+='8'">
<input class="button11" id="box3" type="button" value="9" onClick="document.calculator.ans.value+='9'">
<input class="button12" id="box3" type="button" value="*" onClick="document.calculator.ans.value+='*'">
<input class="button13" id="box4" type="button" value="/" onClick="document.calculator.ans.value+='/'">
<input class="button14" id="box4" type="button" value="0" onClick="document.calculator.ans.value+='0'">
<input class="button15" id="box4" type="reset" value="Reset">
<input class="button" id="box4" type="button" value="=" onClick="document.calculator.ans.value=eval(document.calculator.ans.value)">
<input type="textfield" name="ans" value="">
</div>
</form>
和CSS:
#ans_box {
width:500px;
height:30px;
background-color:silver;
position:relative;
margin-bottom:90%;
}
#demo {
position:relative;
width:500px;
height:30px;
}
#box {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
padding:5px 8px;
}
#box1 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
margin-top:6%;
margin-right:1%;
padding:5px 8px;
}
#box3 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
padding:5px 8px;
}
#box4 {
position:relative;
margin-right:1%;
border-radius:12px;
border-color:green;
background-color:white;
font-size:30px;
float:left;
padding:5px 8px;
}
#boundry{
width:180px;
height:500px;
}
稍微修改一下你的css和html...添加另一个id以便清楚地理解。
您的 javascript 和 HTML 代码绝对完美,没有任何问题。
问题是 CSS.
所有 4 个按钮 类 都有一个 z-index: value;
这使所有按钮都不可点击。删除 css 将使计算器完美运行。
为了让您更多地了解 javascript,我将教您一些有关函数的知识。它们是 javascript 代码片段,可以用简单的一行重新运行。
在你的情况下:
<script>
function setToAns(element) {
document.calculator.ans.value += element.value;
}
</script>
如果您将此添加到您的 html 中,它不会执行任何操作。
但是如果你把它添加到你的按钮中。
<input class="button" type="button" value="1" onClick="setToAns(this);">
它将运行 函数。您可以将其用作普通按钮(不是 = 按钮)(onclick 中的 this
是它来自 运行 的元素)。
希望对您有所帮助。