teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

調整

2016/12/16 02:32

投稿

yambejp
yambejp

スコア117923

answer CHANGED
@@ -30,7 +30,7 @@
30
30
  alert('Q8.その他テキスト必須');
31
31
  return false;
32
32
  }
33
- if($('[name="q[9][checkbox][]"]:checked').length==0){
33
+ if($('[name="q[9][]"]:checked').length==0){
34
34
  alert('Q9.必須');
35
35
  return false;
36
36
  }
@@ -66,9 +66,9 @@
66
66
  <input type='text' name='q[8][]' value='' disabled>
67
67
  <input type='hidden' name='question_id' value='6'>
68
68
  <h2>Q9.チェックボックス必須</h2>
69
- <input type='checkbox' name='q[9][checkbox][]' value='チェック1'>チェック1<br>
69
+ <input type='checkbox' name='q[9][]' value='チェック1'>チェック1<br>
70
- <input type='checkbox' name='q[9][checkbox][]' value='チェック2'>チェック2<br>
70
+ <input type='checkbox' name='q[9][]' value='チェック2'>チェック2<br>
71
- <input type='checkbox' name='q[9][checkbox][]' value='チェック3'>チェック3<br>
71
+ <input type='checkbox' name='q[9][]' value='チェック3'>チェック3<br>
72
72
  <input type='hidden' name='question_id' value='1'>
73
73
  <hr>
74
74
  <input type="submit" value="送信する">

2

sample

2016/12/16 02:32

投稿

yambejp
yambejp

スコア117923

answer CHANGED
@@ -8,4 +8,72 @@
8
8
  それとも隠していたものを見せるのでしょうか?
9
9
  隠していたものを見せるならそのソースを提示されたほうがよいです。
10
10
  また非表示状態であってsubmitしたらデータは送られるので
11
- disabledをどうするか方針も決めたほうがよいでしょう
11
+ disabledをどうするか方針も決めたほうがよいでしょう
12
+
13
+ # sample
14
+ なにか相当勘違いがあるようなので、ざっと提示しておきます
15
+
16
+ ```HTML
17
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
18
+ <script>
19
+ $(function(){
20
+ $('form').on('submit',function(){
21
+ if($('[name="q[1]"]:checked').length==0){
22
+ alert('Q1.必須');
23
+ return false;
24
+ }
25
+ if($('[type=radio][name="q[3]"]:checked').val()=='sonota' && $('[type=text][name="q[3]"]').val()==''){
26
+ alert('Q3.その他テキスト必須');
27
+ return false;
28
+ }
29
+ if($('[type=checkbox][value="q8_sonota"]').prop('checked') && $('[type=text][name="q[8][]"]').val()==''){
30
+ alert('Q8.その他テキスト必須');
31
+ return false;
32
+ }
33
+ if($('[name="q[9][checkbox][]"]:checked').length==0){
34
+ alert('Q9.必須');
35
+ return false;
36
+ }
37
+ });
38
+ $('[type=radio][name="q[3]"]').on('change',function(){
39
+ var flg=$('[type=radio][name="q[3]"]:checked').val()=='sonota';
40
+ $('[type=text][name="q[3]"]').toggle(flg).prop('disabled',!flg);
41
+ }).change();
42
+ $('[value="q8_sonota"]').on('change',function(){
43
+ var flg=$(this).prop('checked');
44
+ $('[type=text][name="q[8][]"]').toggle(flg).prop('disabled',!flg);
45
+ }).change();
46
+ });
47
+
48
+ </script>
49
+ <form>
50
+ <h2>Q1.ラジオボタン必須</h2>
51
+ <input type='radio' name='q[1]' value='ラジオ1'>ラジオ1<br>
52
+ <input type='radio' name='q[1]' value='ラジオ2'>ラジオ2<br>
53
+ <input type='radio' name='q[1]' value='ラジオ3'>ラジオ3<br>
54
+ <input type='hidden' name='question_id' value='6'>
55
+ <h2>Q3.ラジオボタンその他</h2>
56
+ <input type='radio' name='q[3]' value='ラジオ1'>ラジオ1<br>
57
+ <input type='radio' name='q[3]' value='らじお2'>らじお2<br>
58
+ <input type='radio' name='q[3]' value='sonota'>その他<br>
59
+ <input type='text' name='q[3]' value='' disabled>
60
+ <input type='hidden' name='question_id' value='6'>
61
+ <h2>Q8.チェックボックスその他</h2>
62
+ <input type='checkbox' name='q[8][]' value='チェック1'>チェック1<br>
63
+ <input type='checkbox' name='q[8][]' value='チェック2'>チェック2<br>
64
+ <input type='checkbox' name='q[8][]' value='チェック3'>チェック3<br>
65
+ <input type='checkbox' value='q8_sonota'>その他<br>
66
+ <input type='text' name='q[8][]' value='' disabled>
67
+ <input type='hidden' name='question_id' value='6'>
68
+ <h2>Q9.チェックボックス必須</h2>
69
+ <input type='checkbox' name='q[9][checkbox][]' value='チェック1'>チェック1<br>
70
+ <input type='checkbox' name='q[9][checkbox][]' value='チェック2'>チェック2<br>
71
+ <input type='checkbox' name='q[9][checkbox][]' value='チェック3'>チェック3<br>
72
+ <input type='hidden' name='question_id' value='1'>
73
+ <hr>
74
+ <input type="submit" value="送信する">
75
+ </form>
76
+ <?PHP
77
+ print_r(@$_GET["q"]);
78
+ ?>
79
+ ```

1

修正

2016/12/15 13:03

投稿

yambejp
yambejp

スコア117923

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