回答編集履歴

2

整形

2018/04/07 04:42

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36132

test CHANGED
@@ -20,6 +20,8 @@
20
20
 
21
21
  みたいなのはいかがでしょう?
22
22
 
23
+  
24
+
23
25
 
24
26
 
25
27
  ### コメントを受けて追記
@@ -27,6 +29,8 @@
27
29
  [jQueryでの動作サンプル](https://jsfiddle.net/xhvgo4eb/)
28
30
 
29
31
  ```js
32
+
33
+ //元コード
30
34
 
31
35
  $(".input1,.input2").focus(function(){
32
36
 
@@ -46,6 +50,8 @@
46
50
 
47
51
 
48
52
 
53
+ //想定外部スクリプト
54
+
49
55
  $('div').on('click', function(){
50
56
 
51
57
  $(".input1,.input2").val(100);
@@ -53,6 +59,8 @@
53
59
  });
54
60
 
55
61
 
62
+
63
+ //input監視関数
56
64
 
57
65
  var observer = function(_, target){
58
66
 
@@ -73,6 +81,8 @@
73
81
  };
74
82
 
75
83
 
84
+
85
+ //.each()メソッドで監視関数を呼ぶ
76
86
 
77
87
  $(".input1,.input2").each( observer );
78
88
 

1

コメントを受けて追記

2018/04/07 04:42

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36132

test CHANGED
@@ -19,3 +19,81 @@
19
19
  [HTMLInputElement.value を監視する - Qiita](https://qiita.com/lhankor_mhy/items/9e6522c5b257fba2c0e6)
20
20
 
21
21
  みたいなのはいかがでしょう?
22
+
23
+
24
+
25
+ ### コメントを受けて追記
26
+
27
+ [jQueryでの動作サンプル](https://jsfiddle.net/xhvgo4eb/)
28
+
29
+ ```js
30
+
31
+ $(".input1,.input2").focus(function(){
32
+
33
+ $(this).addClass("focus");
34
+
35
+ }).blur(function(){
36
+
37
+ if($(this).val() == ""){
38
+
39
+ $(this).removeClass("focus");
40
+
41
+ }else{
42
+
43
+ }
44
+
45
+ });
46
+
47
+
48
+
49
+ $('div').on('click', function(){
50
+
51
+ $(".input1,.input2").val(100);
52
+
53
+ });
54
+
55
+
56
+
57
+ var observer = function(_, target){
58
+
59
+ Object.defineProperty(target, 'value',{
60
+
61
+ get : function(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,'value').get.call(target)},
62
+
63
+ set : function(x){
64
+
65
+ $(target).focus();
66
+
67
+ Object.getOwnPropertyDescriptor( HTMLInputElement.prototype, 'value' ).set.call( target, x );
68
+
69
+ }
70
+
71
+ });
72
+
73
+ };
74
+
75
+
76
+
77
+ $(".input1,.input2").each( observer );
78
+
79
+ ```
80
+
81
+ ```html
82
+
83
+ <input class="input1">
84
+
85
+ <input class="input2">
86
+
87
+ <div>pref_list</div>
88
+
89
+ ```
90
+
91
+ ```css
92
+
93
+ .focus{
94
+
95
+ border:solid 1px red;
96
+
97
+ }
98
+
99
+ ```