<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="UTF-8" />
</head>
<body>
<div id="app"></div>
<div id="buttons">
<button id="1" data-text="one">1</button>
<button id="2" data-text="two">2</button>
<button id="3" data-text="three">3</button>
<button id="4" data-text="four">4</button>
<button id="5" data-text="five">5</button>
<input id="inp" value=""></input>
</div>
<script>
const onClick = function() {
var dataTextBtnField = this.getAttribute("data-text");
var currentData = document.getElementById("inp").value
var showValue = currentData + dataTextBtnField
document.getElementById("inp").setAttribute("value", showValue);
document.getElementById("inp").value = showValue;
}
const onChange = function() {
this.setAttribute("value", this.value);
}
document.getElementById('1').onclick = onClick;
document.getElementById('2').onclick = onClick;
document.getElementById('3').onclick = onClick;
document.getElementById('4').onclick = onClick;
document.getElementById('5').onclick = onClick;
document.getElementById('inp').onchange = onChange;
</script>
</body>
</html>
document.getElementById("inp").setAttribute("value", showValue);
これを使用すると、HTMLコードでのみ変更され、ビューには反映されません。
document.getElementById("inp").value = showValue;
これを使用すると、ビューのみが変更され、コードは変更されません。
両方の行を使用して、両方の場所で変更します。
添付のスニペットの上記の行にコメントして、同じことを確認してください。