inputフォームに入力した内容を判別して成型するjsを書いてたんですが、(時間をいれたら間にコロンいれるみたいな)成型はinputからフォーカスが外れたら発動してたのですが、enterでもそうなるようにしたいと要望があり、まあそうだよ宇なあと思いいいっすよ~なんて気軽に答えたら意外とはまった。
まず、今までは各inputにonblurをつけて、function(e)とかでそのinputのvalueを取得してきてたのでいざやるとなったとき、enterだとどのinputのvalueの値をとるかをまず明確にしなければならないことに気づく・・・
キャレットが入っているinputのvalueを拾うなんてできるのだろうかといろいろ試行錯誤していたところありました。
document.activeElement.blur()
これだけで、今キャレットが入っているinputからfocusがはずれたらという意味のようで、enter押したらこれを発動するだけで一発で終わりましたとさ。
2時間無駄にした・・
Leave a Reply