回答編集履歴
5
修整
test
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
ごめんなさい。
|
2
|
-
質問を理解
|
1
|
+
すみません、質問を理解できていませんでした。
|
3
2
|
|
4
3
|
selPrefが変更されたときにselCityの選択肢を更新したいということですね。
|
5
4
|
input要素のchangeイベントはユーザーの入力があった場合に反応します。
|
4
追記
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
大幅修正
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
修整
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
修整
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
|
});
|