2121 Interval Timerの入力欄の例外仕様

2021年10月22日

t f B! P L

このブログでは、プリズナートレーニングなどの筋トレ用に、2121 Interval Timerという、ブラウザ上で1秒ごとに効果音を鳴らしつつ、3~8秒ごとに次のレップス数を再生するタイマー(Webアプリ)を公開しています。
「2121 Interval Timer」は、望んだ結果をきちんと返すように作ったつもりです。
しかし、以下の3つを入力して「Start」ボタンをクリックすると、あなたが望まない動作をする可能性があります。

  1. Countdown (3 - 15)(以後: Countdown)
  2. Reps (1 - 100)(以後: Reps)
  3. Speed (3 - 8)(以後: Speed)

その時は、以下が参考になるかもしれません。
ここでは、「Countdown」と「Reps」と「Speed」で、意図しない入力が行われた際の仕様をご紹介します。

「Countdown」と「Reps」と「Speed」で、意図しない入力が行われた際の仕様

「Countdown」と「Reps」と「Speed」は、以下の方法で入力(選択)することを想定しています。

  • キーボードからの入力
  • キーボードの上矢印キー(↑)、下矢印キー(↓)で選択
  • スピンボタン(「Countdown」や「Reps」の、入力欄の横の上下ボタン(▲/▼))で選択

そのうち、以下の方法では、指定した範囲内の数値しか選択できないため、問題はありません。

  • キーボードの上矢印キー(↑)、下矢印キー(↓)で選択
  • スピンボタン(「Countdown」や「Reps」の、入力欄の横の上下ボタン(▲/▼))で選択

しかし、キーボードから入力した場合、入力欄を以下のような状態にすることが可能です。

  • +
  • -
  • .
  • e
  • 入力欄を空欄にする
  • 最小値を下回る数値(例: -1)
  • 小数(例: 3.1)
  • 最大値を上回る数値(例: 101)

そのため、「Countdown」と「Reps」と「Speed」では、入力(選択)された値を、整数値に変換します。
その上で、以下のような仕様にしています。

  • 整数値に変換できなかった場合(例: 空欄): 既定値に設定
  • 最小値よりも小さな数値(例: -1)が入力された場合: 最小値に設定
  • 最大値よりも大きな数値(例: 101)が入力された場合: 最大値に設定

以上が、「Countdown」と「Reps」と「Speed」で、意図しない入力が行われた際の仕様です。

Webアプリケーション

このブログを検索

QooQ