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

回答編集履歴

2

複数の <select name="search_classcategory_id">

2018/04/03 13:57

投稿

think49
think49

スコア18194

answer CHANGED
@@ -31,6 +31,9 @@
31
31
  いずれにしてもこれはオブジェクトの構造上の問題ですので、コンソールデバッグやbreakpointを設定して該当オブジェクトの中身が期待通りのものかを確認して下さい。
32
32
 
33
33
  defghi1977 さんが仰るように**PHPが出力しているHTML**を確認して下さい。JavaScriptからすれば「出力されたHTML」が全てです。
34
+
35
+ ### 複数の <select name="search_classcategory_id">
36
+
34
37
  あまり深く読んでいませんが、`<select name="search_classcategory_id">` が複数存在していませんか?
35
38
  複数存在するなら、下記コードでエラーになりそうですが…。
36
39
 
@@ -38,4 +41,37 @@
38
41
  > var classcategory_val = document.form1.search_classcategory_id.options[num].value;
39
42
  > ```
40
43
 
44
+ **(2018/04/03 22:57追記)**
45
+
46
+ 疑似コードで再現出来ました。
47
+
48
+ ```HTML
49
+ <form name="form1" id="form1" method="post" action="#">
50
+ <select name="search_classcategory_id">
51
+ <option value="1"></option>
52
+ <option value="2"></option>
53
+ <option value="3"></option>
54
+ </select>
55
+ <select name="search_classcategory_id">
56
+ <option value="1"></option>
57
+ <option value="2"></option>
58
+ <option value="3"></option>
59
+ </select>
60
+ <select name="search_classcategory_id">
61
+ <option value="1"></option>
62
+ <option value="2"></option>
63
+ <option value="3"></option>
64
+ </select>
65
+ </form>
66
+
67
+ <script>
68
+ 'use strict';
69
+ var num = document.form1.search_classcategory_id.selectedIndex;
70
+ console.log(num); // undefined
71
+ console.log(document.form1.search_classcategory_id.options); // undefined
72
+
73
+ var classcategory_val = document.form1.search_classcategory_id.options[num].value; // TypeError: Cannot read property 'undefined' of undefined
74
+ </script>
75
+ ```
76
+
41
77
  Re: wa.shi さん

1

typo修正

2018/04/03 13:57

投稿

think49
think49

スコア18194

answer CHANGED
@@ -30,9 +30,9 @@
30
30
 
31
31
  いずれにしてもこれはオブジェクトの構造上の問題ですので、コンソールデバッグやbreakpointを設定して該当オブジェクトの中身が期待通りのものかを確認して下さい。
32
32
 
33
- defghi1977 さんが仰るように**PHPが出力しているHTML**を確認して下さい。JavaScriptからすれば出されたHTMLが全てです。
33
+ defghi1977 さんが仰るように**PHPが出力しているHTML**を確認して下さい。JavaScriptからすればされたHTMLが全てです。
34
34
  あまり深く読んでいませんが、`<select name="search_classcategory_id">` が複数存在していませんか?
35
- 数存在するなら、下記コードでエラーになりそうですが…。
35
+ 数存在するなら、下記コードでエラーになりそうですが…。
36
36
 
37
37
  > ```JavaScript
38
38
  > var classcategory_val = document.form1.search_classcategory_id.options[num].value;