回答編集履歴

2

getterもオーバーライドしないといけなかったので修正

2017/10/05 00:42

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36117

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  が、互換性は確認してないです。
48
48
 
49
- [https://jsfiddle.net/bmvcneoo/1/](https://jsfiddle.net/bmvcneoo/1/)
49
+ [https://jsfiddle.net/bmvcneoo/2/](https://jsfiddle.net/bmvcneoo/2/)
50
50
 
51
51
  ```javascript
52
52
 
@@ -54,13 +54,11 @@
54
54
 
55
55
  Object.defineProperty(target, 'value',{
56
56
 
57
- get : function(){return value;},
57
+ get : function(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,'value').get.call(target)},
58
58
 
59
59
  set : function(x){
60
60
 
61
61
  if (x) {console.log(x)}
62
-
63
- value = x;
64
62
 
65
63
  Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,'value').set.call(target,x);
66
64
 

1

ダミー要素なしでも行けました

2017/10/05 00:42

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36117

test CHANGED
@@ -37,3 +37,37 @@
37
37
  })(document.querySelector('.p-region[type=hidden]'))
38
38
 
39
39
  ```
40
+
41
+  
42
+
43
+
44
+
45
+ ### ダミー要素なしでも行けました
46
+
47
+ が、互換性は確認してないです。
48
+
49
+ [https://jsfiddle.net/bmvcneoo/1/](https://jsfiddle.net/bmvcneoo/1/)
50
+
51
+ ```javascript
52
+
53
+ (function(target){
54
+
55
+ Object.defineProperty(target, 'value',{
56
+
57
+ get : function(){return value;},
58
+
59
+ set : function(x){
60
+
61
+ if (x) {console.log(x)}
62
+
63
+ value = x;
64
+
65
+ Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,'value').set.call(target,x);
66
+
67
+ }
68
+
69
+ })
70
+
71
+ })(document.querySelector('.p-region'))
72
+
73
+ ```