iOS Safariでのinputの実装注意点

maxlength を使ってはならない

  • 効かないので使ってはならない
  • string.slice(0, maxlength) も IME の挙動が可笑しくなるので NG
    • type="tel" など日本語が入力できない場合であれば有効
  • オートコンプリートやコピペ入力での字切れなどもあるため、根本的に使わないことが望ましい

type="number" を使ってはならない

  • 期待した動作にはならないので使ってはならない
    • 使うなら type="tel" を使い、JS で数字以外の入力を弾くのが無難
    • 恐らく普及ブラウザの全てで半角入力を強制出来、スマホなどでは NumPad が出てくる
      • アルファベットやハイフンなどの記号も打てるので入力制御は必要