我想尝试制作计算器,但我遇到了一个错误。当我在计算器中输入一个数字时,我输入的项目会显示一瞬间,但整个界面变得不可见。我为每个按钮尝试了这个,但是会出现相同的结果。我还测试了添加一个=
标志,没有运气帮助这个bug。这是代码:
<div class="fluid-container">
<form name="calculator">
<input type="textfield" name="ans" value="" class="form-control" placeholder="Result"><br>
<div class="row">
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='1'">1</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='4'">4</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='7'">7</button><br>
<button class="btn btn-danger" onclick="root()">√</button>
</div>
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='2'">2</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='5'">5</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='8'">8</button><br>
<button class="btn btn-danger">x<sup>y</sup></button>
</div>
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='3'">3</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='6'">6</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='9'">9</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='0'">0</button>
</div>
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='/'">÷</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='*'">x</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='+'">+</button><br>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='-'">-</button>
</div>
</div>
</form>
</div><hr>
答案 0 :(得分:0)
您的按钮正在向同一页面发出请求。如果您需要练习更多来开发此应用程序。
为了好好练习,你必须写一个单独的javascript代码。
您无法使用纯HTML代码开发此计算器。因为HTML不是计算语言。
答案 1 :(得分:0)
在每个“按钮”元素的内部,添加属性“type =”按钮“'。这将改变元素的行为。目前,我认为默认情况下它们被视为提交...这将刷新页面并重置字段。
答案 2 :(得分:0)
根据<button>
的文档:
属性
型
按钮的类型。可能的值有:
由于省略了该属性,因此使用默认值(即 submit ),只要单击其中一个按钮,表单就会被提交,从而看起来整个界面都消失了。
防止这种情况的选项包括:
return false;
添加到按钮的 onclick 属性中的内嵌式Iavascript 参见下面的演示:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="fluid-container">
<form name="calculator">
<input type="textfield" name="ans" value="" class="form-control" placeholder="Result"><br>
<div class="row">
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='1';return false">1</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='4'" type="button">4</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='7'" type="button">7</button>
<button class="btn btn-danger" onclick="root()">√</button>
</div>
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='2'" type="button">2</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='5'" type="button">5</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='8'" type="button">8</button>
<button class="btn btn-danger">x<sup>y</sup></button>
</div>
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='3'" type="button">3</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='6'" type="button">6</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='9'" type="button">9</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='0'" type="button">0</button>
</div>
<div class="col-lg-3">
<button class="btn btn-danger" onclick="document.calculator.ans.value+='/'" type="button">÷</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='*'" type="button">x</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='+';return false">+</button>
<button class="btn btn-danger" onclick="document.calculator.ans.value+='-'" type="button">-</button>
</div>
</div>
</form>
</div>
<hr>
1 <子> https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type 子>
答案 3 :(得分:0)
问题是button
(在您的标记中)与input
(在线示例中使用)相比的使用 - 点击button
提交表单。输入没有。更新HTML以使用输入,您将看到它有效。
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="fluid-container">
<form name="calculator">
<input type="textfield" name="ans" value="" class="form-control" placeholder="Result"><br>
<div class="row">
<div class="col-lg-3">
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='1'" value="1"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='4'" value="4"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='7'" value="7"></input><br>
<input type="button" class="btn btn-danger" onclick="root()" value="√"></input>
</div>
<div class="col-lg-3">
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='2'" value="2"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='5'" value="5"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='8'" value="8"></input><br>
<input type="button" class="btn btn-danger" value="xy"></input>
</div>
<div class="col-lg-3">
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='3'" value="3"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='6'" value="6"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='9'" value="9"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='0'" value="0"></input>
</div>
<div class="col-lg-3">
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='/'" value="÷"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='*'" value="x"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='+'" value="+"></input><br>
<input type="button" class="btn btn-danger" onclick="document.calculator.ans.value+='-'" value="-"></input>
</div>
</div>
</form>
</div><hr>