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

質問編集履歴

7

追加

2021/01/13 05:58

投稿

..o
..o

スコア28

title CHANGED
File without changes
body CHANGED
@@ -33,6 +33,17 @@
33
33
  }
34
34
  ```
35
35
 
36
+ ```HTML
37
+ <input type="password" name="password" id="password01" maxlength="1"
38
+ onkeyup="moveOnMax(this,'password02','password01')">
39
+ <input type="password" name="password" id="password02" maxlength="1"
40
+ onkeyup="moveOnMax(this,'password03','password01')">
41
+ <input type="password" name="password" id="password03" maxlength="1"
42
+ onkeyup="moveOnMax(this,'password04','password02')">
43
+ <input type="password" name="password" id="password04" maxlength="1"
44
+ onkeyup="moveOnMax(this,'password04','password03')">
45
+ ```
46
+
36
47
  入力後、次のフィールドへのフォーカスすることができなくなりました。
37
48
  また、エラーは無くなりましたが、else ifの方にconsole.logでprevFieldeIDを出力すると、入力した際にもコンソールにprevFieldeIDの値が出力されてしまっています。
38
49
  else ifの内容も else if (field.value.length < 1)に変えたのですが、このif分の指定がそもそも間違っているのでしょうか?

6

誤字

2021/01/13 05:58

投稿

..o
..o

スコア28

title CHANGED
File without changes
body CHANGED
@@ -28,7 +28,7 @@
28
28
  if (field.value.length == 1) {
29
29
  document.getElementById(nextFieldID).focus();
30
30
  } else if (field.value.length < 1) {
31
- document.getElementById(prevFieldeID).focus();
31
+ document.getElementById(prevFieldID).focus();
32
32
  }
33
33
  }
34
34
  ```

5

文の修正

2021/01/13 05:56

投稿

..o
..o

スコア28

title CHANGED
File without changes
body CHANGED
@@ -33,6 +33,6 @@
33
33
  }
34
34
  ```
35
35
 
36
- 入力後次のフィールドへのフォーカスすることができなくなりました。
36
+ 入力後次のフィールドへのフォーカスすることができなくなりました。
37
37
  また、エラーは無くなりましたが、else ifの方にconsole.logでprevFieldeIDを出力すると、入力した際にもコンソールにprevFieldeIDの値が出力されてしまっています。
38
38
  else ifの内容も else if (field.value.length < 1)に変えたのですが、このif分の指定がそもそも間違っているのでしょうか?

4

コード修正

2021/01/13 05:55

投稿

..o
..o

スコア28

title CHANGED
File without changes
body CHANGED
@@ -24,20 +24,15 @@
24
24
 
25
25
 
26
26
  ```javascript
27
- moveOnMax = function (field, nextFieldID) {
27
+ moveOnMax = function (field, nextFieldID,prevFieldeID) {
28
28
  if (field.value.length == 1) {
29
29
  document.getElementById(nextFieldID).focus();
30
- } else if (field.value.length == 0) {
30
+ } else if (field.value.length < 1) {
31
- let prevFielde = nextFieldID.slice(8, 10);
32
- let prevFieldeID = Number(prevFielde)-2;
33
- document.getElementById("password0" + String(prevFieldeID)).focus();
31
+ document.getElementById(prevFieldeID).focus();
34
-
35
32
  }
36
33
  }
37
34
  ```
38
35
 
39
- ```
40
- エラメッセ
36
+ 入力後次のフィルドへのフォカスすることができなくなりました。
37
+ また、エラーは無くなりましたが、else ifの方にconsole.logでprevFieldeIDを出力すると、入力した際にもコンソールにprevFieldeIDの値が出力されてしまっています。
41
- Uncaught TypeError: Cannot read property 'focus' of null
38
+ else ifの内容も else if (field.value.length < 1)に変えたのですが、このif分の指定がそもそも間違っているのでしょうか?
42
- ```
43
- 一番左のフィールドに入力した際と二番目に入力した際、三番目、二番目、一番目を削除した際にこのエラーが出ます。

3

修正

2021/01/12 07:02

投稿

..o
..o

スコア28

title CHANGED
File without changes
body CHANGED
@@ -27,14 +27,13 @@
27
27
  moveOnMax = function (field, nextFieldID) {
28
28
  if (field.value.length == 1) {
29
29
  document.getElementById(nextFieldID).focus();
30
-
31
- }else if (field.value.length == 0) {
30
+ } else if (field.value.length == 0) {
32
31
  let prevFielde = nextFieldID.slice(8, 10);
33
- let prevFieldeID = Number(prevFielde-2);
32
+ let prevFieldeID = Number(prevFielde)-2;
33
+ document.getElementById("password0" + String(prevFieldeID)).focus();
34
34
 
35
- document.getElementById("password0" + String(prevFieldeID - 2)).focus();
36
-
37
35
  }
36
+ }
38
37
  ```
39
38
 
40
39
  ```

2

追記

2021/01/12 06:44

投稿

..o
..o

スコア28

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,5 @@
40
40
  ```
41
41
  エラーメッセージ
42
42
  Uncaught TypeError: Cannot read property 'focus' of null
43
- ```
43
+ ```
44
+ 一番左のフィールドに入力した際と二番目に入力した際、三番目、二番目、一番目を削除した際にこのエラーが出ます。

1

修正

2021/01/12 06:26

投稿

..o
..o

スコア28

title CHANGED
File without changes
body CHANGED
@@ -12,8 +12,6 @@
12
12
  <input type="password" name="password" id="password04" maxlength="1">
13
13
  ```
14
14
 
15
- ### 該当のソースコード
16
-
17
15
  ```javascript
18
16
  moveOnMax = function (field, nextFieldID) {
19
17
  if (field.value.length == 1) {