回答編集履歴

3

調整

2016/12/16 02:32

投稿

yambejp
yambejp

スコア114839

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  }
64
64
 
65
- if($('[name="q[9][checkbox][]"]:checked').length==0){
65
+ if($('[name="q[9][]"]:checked').length==0){
66
66
 
67
67
  alert('Q9.必須');
68
68
 
@@ -134,11 +134,11 @@
134
134
 
135
135
  <h2>Q9.チェックボックス必須</h2>
136
136
 
137
- <input type='checkbox' name='q[9][checkbox][]' value='チェック1'>チェック1<br>
137
+ <input type='checkbox' name='q[9][]' value='チェック1'>チェック1<br>
138
138
 
139
- <input type='checkbox' name='q[9][checkbox][]' value='チェック2'>チェック2<br>
139
+ <input type='checkbox' name='q[9][]' value='チェック2'>チェック2<br>
140
140
 
141
- <input type='checkbox' name='q[9][checkbox][]' value='チェック3'>チェック3<br>
141
+ <input type='checkbox' name='q[9][]' value='チェック3'>チェック3<br>
142
142
 
143
143
  <input type='hidden' name='question_id' value='1'>
144
144
 

2

sample

2016/12/16 02:32

投稿

yambejp
yambejp

スコア114839

test CHANGED
@@ -19,3 +19,141 @@
19
19
  また非表示状態であってsubmitしたらデータは送られるので
20
20
 
21
21
  disabledをどうするか方針も決めたほうがよいでしょう
22
+
23
+
24
+
25
+ # sample
26
+
27
+ なにか相当勘違いがあるようなので、ざっと提示しておきます
28
+
29
+
30
+
31
+ ```HTML
32
+
33
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
34
+
35
+ <script>
36
+
37
+ $(function(){
38
+
39
+ $('form').on('submit',function(){
40
+
41
+ if($('[name="q[1]"]:checked').length==0){
42
+
43
+ alert('Q1.必須');
44
+
45
+ return false;
46
+
47
+ }
48
+
49
+ if($('[type=radio][name="q[3]"]:checked').val()=='sonota' && $('[type=text][name="q[3]"]').val()==''){
50
+
51
+ alert('Q3.その他テキスト必須');
52
+
53
+ return false;
54
+
55
+ }
56
+
57
+ if($('[type=checkbox][value="q8_sonota"]').prop('checked') && $('[type=text][name="q[8][]"]').val()==''){
58
+
59
+ alert('Q8.その他テキスト必須');
60
+
61
+ return false;
62
+
63
+ }
64
+
65
+ if($('[name="q[9][checkbox][]"]:checked').length==0){
66
+
67
+ alert('Q9.必須');
68
+
69
+ return false;
70
+
71
+ }
72
+
73
+ });
74
+
75
+ $('[type=radio][name="q[3]"]').on('change',function(){
76
+
77
+ var flg=$('[type=radio][name="q[3]"]:checked').val()=='sonota';
78
+
79
+ $('[type=text][name="q[3]"]').toggle(flg).prop('disabled',!flg);
80
+
81
+ }).change();
82
+
83
+ $('[value="q8_sonota"]').on('change',function(){
84
+
85
+ var flg=$(this).prop('checked');
86
+
87
+ $('[type=text][name="q[8][]"]').toggle(flg).prop('disabled',!flg);
88
+
89
+ }).change();
90
+
91
+ });
92
+
93
+
94
+
95
+ </script>
96
+
97
+ <form>
98
+
99
+ <h2>Q1.ラジオボタン必須</h2>
100
+
101
+ <input type='radio' name='q[1]' value='ラジオ1'>ラジオ1<br>
102
+
103
+ <input type='radio' name='q[1]' value='ラジオ2'>ラジオ2<br>
104
+
105
+ <input type='radio' name='q[1]' value='ラジオ3'>ラジオ3<br>
106
+
107
+ <input type='hidden' name='question_id' value='6'>
108
+
109
+ <h2>Q3.ラジオボタンその他</h2>
110
+
111
+ <input type='radio' name='q[3]' value='ラジオ1'>ラジオ1<br>
112
+
113
+ <input type='radio' name='q[3]' value='らじお2'>らじお2<br>
114
+
115
+ <input type='radio' name='q[3]' value='sonota'>その他<br>
116
+
117
+ <input type='text' name='q[3]' value='' disabled>
118
+
119
+ <input type='hidden' name='question_id' value='6'>
120
+
121
+ <h2>Q8.チェックボックスその他</h2>
122
+
123
+ <input type='checkbox' name='q[8][]' value='チェック1'>チェック1<br>
124
+
125
+ <input type='checkbox' name='q[8][]' value='チェック2'>チェック2<br>
126
+
127
+ <input type='checkbox' name='q[8][]' value='チェック3'>チェック3<br>
128
+
129
+ <input type='checkbox' value='q8_sonota'>その他<br>
130
+
131
+ <input type='text' name='q[8][]' value='' disabled>
132
+
133
+ <input type='hidden' name='question_id' value='6'>
134
+
135
+ <h2>Q9.チェックボックス必須</h2>
136
+
137
+ <input type='checkbox' name='q[9][checkbox][]' value='チェック1'>チェック1<br>
138
+
139
+ <input type='checkbox' name='q[9][checkbox][]' value='チェック2'>チェック2<br>
140
+
141
+ <input type='checkbox' name='q[9][checkbox][]' value='チェック3'>チェック3<br>
142
+
143
+ <input type='hidden' name='question_id' value='1'>
144
+
145
+ <hr>
146
+
147
+ <input type="submit" value="送信する">
148
+
149
+ </form>
150
+
151
+ <?PHP
152
+
153
+ print_r(@$_GET["q"]);
154
+
155
+ ?>
156
+
157
+ ```
158
+
159
+

1

修正

2016/12/15 13:03

投稿

yambejp
yambejp

スコア114839

test CHANGED
@@ -1,3 +1,21 @@
1
1
  radioもcheckもidやクラス名ではないですからね
2
2
 
3
3
  jQueryではなく普通のjavascriptでやりたいのでしょうか?
4
+
5
+
6
+
7
+ ちなみにgetElementsById()はgetElementById()なので注意してください
8
+
9
+
10
+
11
+ 肝心のテキストボックスがソースに見当たりませんが
12
+
13
+ チェックしたときにDOMで作成するのでしょうか?
14
+
15
+ それとも隠していたものを見せるのでしょうか?
16
+
17
+ 隠していたものを見せるならそのソースを提示されたほうがよいです。
18
+
19
+ また非表示状態であってsubmitしたらデータは送られるので
20
+
21
+ disabledをどうするか方針も決めたほうがよいでしょう