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

回答編集履歴

2

両方やってるから

2021/06/07 06:32

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -14,8 +14,29 @@
14
14
  'onchange' => 'selectChange()',
15
15
  )
16
16
  );
17
+ ```
17
18
 
19
+ また、jQuery内で囲まれたイベントトリガーはjQueryのイベントを適用するので、その場合はjsのイベントトリガーは対応できません。今回はjsのonChangeイベントが使われているので、その場合はjQueryの指定は不要です。
18
20
 
21
+ ```js
22
+ //$(document).ready(function() { /*コメントアウトしてjQueryの外側へ*/
23
+ function selectChange() {
24
+ var selectedValue = $("#searchId").val();
25
+ console.log(selectedValue)
26
+ }
27
+ //})
28
+ ```
19
29
 
30
+ 逆に、index.ctpからonchangeプロパティとメソッドを消去して、jsに以下の
20
31
 
32
+ webroot/js/xxxx.js
33
+
34
+ ```js
35
+ $('#SearchId').on("change",function(){
36
+ var selectedValue = $(this).val();
37
+ console.log(selectedValue)
38
+ })
21
- ```
39
+ ```
40
+ と記述すれば取得できます。
41
+
42
+ つまり、イベントトリガーはjQueryかJavascriptのいずれかにしか対応してません。

1

コンマ抜けてた

2021/06/07 06:32

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -2,12 +2,12 @@
2
2
  第三引数に追記する必要があります。
3
3
 
4
4
  ```ctp
5
- //cakePHP3ならctpです
5
+ //cakePHP4ならphpです
6
6
  $this->Form->select(
7
7
  'Search.id',
8
8
  $selectlist,
9
9
  array(
10
-    'id' => 'searchId'
10
+    'id' => 'searchId',
11
11
  'empty' => '',
12
12
  'value' => $this->request->query('id'),
13
13
  'empty' => false,