回答編集履歴

1

ちょうせい

2022/01/14 08:56

投稿

yambejp
yambejp

スコア114808

test CHANGED
@@ -20,3 +20,29 @@
20
20
  test.value="test3";
21
21
  </script>
22
22
  ```
23
+ # 調整版
24
+ ```javascript
25
+ <input type="text" id="test" value="test1" />
26
+ <script>
27
+ const test= document.getElementById('test');
28
+ let value=test.getAttribute('value');
29
+ test.addEventListener('input', () => {
30
+ console.log("testが変更されたときの処理");
31
+ });
32
+ Object.defineProperty(test, "value", {
33
+ get: () => value,
34
+ set: newValue => {
35
+ const oldValue = value;
36
+ value = newValue;
37
+ test.dispatchEvent(new Event('input'));
38
+ test.setAttribute('value',newValue);
39
+ console.log(`${oldValue}→${value}`);
40
+ },
41
+ });
42
+ let count=1;
43
+ let timerId=setInterval(()=>{
44
+ test.value=`test${++count}`;
45
+ if(count>5) clearInterval(timerId);
46
+ },1000);
47
+ </script>
48
+ ```