admin管理员组文章数量:1312722
When I click numbers, I always get the same result. Why? Here is my HTML code:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<input type="button" id="myBtn" onclick="myFunction()" value="1">
<input type="button" id="myBtn" onclick="myFunction()" value="2">
<input type="button" id="myBtn" onclick="myFunction()" value="3">
<input type="button" id="myBtn" onclick="myFunction()" value="4">
<input type="button" id="myBtn" onclick="myFunction()" value="5">
<input type="button" id="myBtn" onclick="myFunction()" value="6">
<input type="button" id="myBtn" onclick="myFunction()" value="7">
<input type="button" id="myBtn" onclick="myFunction()" value="8">
<input type="button" id="myBtn" onclick="myFunction()" value="9">
<input type="button" id="myBtn" onclick="myFunction()" value="0">
<script>
function myFunction() {
var x = document.getElementById("myBtn").value;
document.getElementById("demo").innerHTML = x;
}
</script>
</body>
</html>
When I click numbers, I always get the same result. Why? Here is my HTML code:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<input type="button" id="myBtn" onclick="myFunction()" value="1">
<input type="button" id="myBtn" onclick="myFunction()" value="2">
<input type="button" id="myBtn" onclick="myFunction()" value="3">
<input type="button" id="myBtn" onclick="myFunction()" value="4">
<input type="button" id="myBtn" onclick="myFunction()" value="5">
<input type="button" id="myBtn" onclick="myFunction()" value="6">
<input type="button" id="myBtn" onclick="myFunction()" value="7">
<input type="button" id="myBtn" onclick="myFunction()" value="8">
<input type="button" id="myBtn" onclick="myFunction()" value="9">
<input type="button" id="myBtn" onclick="myFunction()" value="0">
<script>
function myFunction() {
var x = document.getElementById("myBtn").value;
document.getElementById("demo").innerHTML = x;
}
</script>
</body>
</html>
Share
Improve this question
edited May 28, 2017 at 22:16
Badacadabra
8,5177 gold badges31 silver badges54 bronze badges
asked Jun 21, 2015 at 7:38
Nurul Akter TowhidNurul Akter Towhid
3,2462 gold badges35 silver badges36 bronze badges
3 Answers
Reset to default 21) Ids must be unique. Rewrite your HTML to use classes or unique ids.
2) To get value in myFunction
you can simply pass this
from elenment to access to clicked button.
<input type="button" id="myBtn" onclick="myFunction(this)" value="1">
....
function myFunction(button) {
var x = button.value;
document.getElementById("demo").innerHTML = x;
}
http://jsfiddle/0sewtjLs/
Still have the problem in case of more than 1digit number
Just concat string:
document.getElementById("demo").innerHTML += x;
http://jsfiddle/0sewtjLs/1/
try
<input type="button" id="myBtn" onclick="myFunction(1)" >
<input type="button" id="myBtn" onclick="myFunction(2)" >
<input type="button" id="myBtn" onclick="myFunction(3)" >
<input type="button" id="myBtn" onclick="myFunction(4)" >
<input type="button" id="myBtn" onclick="myFunction(5)" >
<input type="button" id="myBtn" onclick="myFunction(6)" >
<input type="button" id="myBtn" onclick="myFunction(7)" >
<input type="button" id="myBtn" onclick="myFunction(8)" >
<input type="button" id="myBtn" onclick="myFunction(9)" >
<input type="button" id="myBtn" onclick="myFunction(0)" >
<script>
function myFunction(x) {
document.getElementById("demo").innerHTML = x;
}
</script>
you can also keep logic only in Javascript, and removing the "onclick" on HTML. In the code bellow, all your buttons have "myBtn" class. You can have infinite time the same class. But ID's are unique, be carefull.
In this code I get the all class "myBtn", wich return an Array. On this array, I making a loop and add an eventListner listening clicks and calling the myFunction function.
<p id="demo"></p>
<input type="button" class="myBtn" value="1">
<input type="button" class="myBtn" value="2">
<input type="button" class="myBtn" value="3">
<input type="button" class="myBtn" value="4">
<input type="button" class="myBtn" value="5">
<input type="button" class="myBtn" value="6">
<input type="button" class="myBtn" value="7">
<input type="button" class="myBtn" value="8">
<input type="button" class="myBtn" value="9">
<input type="button" class="myBtn" value="0">
<script>
const allBtns = document.querySelectorAll('.myBtn');
allBtns.forEach( element => {
element.addEventListener('click', myFunction);
})
function myFunction(e) {
const value = e.target.value;
document.getElementById("demo").innerHTML = value;
}
</script>
本文标签: javascriptHow to display number input using button for calculator in HTMLStack Overflow
版权声明:本文标题:javascript - How to display number input using button for calculator in HTML? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741895640a2403559.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论