回答編集履歴

5

修整

2022/02/06 22:11

投稿

kairi003
kairi003

スコア1332

test CHANGED
@@ -1,5 +1,4 @@
1
- ごめんなさい。
2
- 質問を理解ていませんでした。
1
+ すみません、質問を理解できていませんでした。
3
2
 
4
3
  selPrefが変更されたときにselCityの選択肢を更新したいということですね。
5
4
  input要素のchangeイベントはユーザーの入力があった場合に反応します。

4

追記

2022/02/06 13:54

投稿

kairi003
kairi003

スコア1332

test CHANGED
@@ -13,6 +13,14 @@
13
13
  selPref(select);
14
14
  ```
15
15
 
16
+ もしくは、イベントでの呼び出しとして一貫性をもたせたいのなら、selectでchangeイベントを発火します。
17
+ ```js
18
+ var select = document.getElementById("selPref");
19
+ select.value="23";
20
+ select.dispatchEvent(new Event( "change"));
21
+ ```
22
+
23
+
16
24
  先程の回答のselect.valueを書き換えても選択肢は変わらない、は自分の勘違いでした…お恥ずかしい
17
25
 
18
26
  ---

3

大幅修正

2022/02/06 13:47

投稿

kairi003
kairi003

スコア1332

test CHANGED
@@ -1,4 +1,24 @@
1
+ ごめんなさい。
2
+ 質問を理解していませんでした。
3
+
4
+ selPrefが変更されたときにselCityの選択肢を更新したいということですね。
5
+ input要素のchangeイベントはユーザーの入力があった場合に反応します。
6
+ なので、JSで変更した場合は反応しません。
7
+ 例えば、`<input type="textbox" oncahnge="console.log(this)" >`に対してJSでvalueを書き換えても`console.log(this)`は実行されません。
8
+ なので、oncahngeに設定している関数を直接呼び出せばよいです。
9
+
10
+ ```js
11
+ var select = document.getElementById("selPref");
12
+ select.value="23";
13
+ selPref(select);
14
+ ```
15
+
16
+ 先程の回答のselect.valueを書き換えても選択肢は変わらない、は自分の勘違いでした…お恥ずかしい
17
+
18
+ ---
19
+ 旧回答
20
+
1
- 選択したいoption要素にselected属性を付与します。
21
+ ~~選択したいoption要素にselected属性を付与します。~~
2
22
 
3
23
  ```js
4
24
  var select = document.getElementById("selPref");

2

修整

2022/02/06 07:02

投稿

kairi003
kairi003

スコア1332

test CHANGED
@@ -3,5 +3,5 @@
3
3
  ```js
4
4
  var select = document.getElementById("selPref");
5
5
  select.querySelectorAll('option').forEach(op => {
6
- if (op.value==23) op.selected = true;
6
+ if (op.value == '23') op.selected = true;
7
7
  });

1

修整

2022/02/06 07:01

投稿

kairi003
kairi003

スコア1332

test CHANGED
@@ -3,5 +3,5 @@
3
3
  ```js
4
4
  var select = document.getElementById("selPref");
5
5
  select.querySelectorAll('option').forEach(op => {
6
- if (op.value==23) op.selected=true
6
+ if (op.value==23) op.selected = true;
7
7
  });