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

回答編集履歴

1

校生

2018/12/21 05:04

投稿

miyabi-sun
miyabi-sun

スコア21472

answer CHANGED
@@ -12,11 +12,18 @@
12
12
  > 少数点がフォームに入力された時点で、maxlengthが"5"に書き換わるような実装
13
13
 
14
14
  これは発想・着眼点は面白いのですが、
15
- 10と入力した後の`.`がそのままでは捨てられてしまうでしょう
15
+ 10と入力した後のドットがそのままでは捨てられてしまいます
16
- この捨てられるはずの`.`はonkeydownやonkeyupで拾えるんですかね?捨てられるんですかね?(未確認
16
+ この捨てられるはずのドットはonkeydownやonkeyupで拾えるんですかね?捨てられるんですかね?(未確認
17
- もし捨てられてしまうのであれば、今のカーソル位置に.を含める対応が求められるので無駄に難易度があがると思います。
18
17
 
18
+ まぁ捨てられてしまうならmaxlength拡張後に`.`を補えば良いですが、
19
+ その後ドットが削られたらmaxlengthは当然"2"に戻るんですよね?
20
+ ドットが2個に増えた後に1個に減ったら?こんな感じでコードばかり複雑で長くなる筋悪な方針に思えます。
21
+
19
- そもそも最初から`maxlength="5"`で待ち受け、
22
+ だったら最初から`maxlength="5"`で待ち受け、
20
23
  oninputあたりで毎回の入力を見張って11以上の数値になった場合、
21
24
  ドットが含まれていなければ10、含まれているならば`10.99`を
22
- input要素代入させてしまう作りにしたほうが非常に楽に実装出来るでしょう。
25
+ input要素代入させてしまう作りにしたほうが非常に楽に実装出来るでしょう。
26
+
27
+ でもこの対応ってまんま`<input type="number" max="10.99" min="0" step="0.05">`なんですよね。
28
+ input要素のデザインが変わったりするんでしょうか?
29
+ よくわからん…やっぱり無駄に思えるんですが色々考えてみてください。