HTMLInputElement: stepUp() メソッド
HTMLInputElement.stepUp() メソッドは、数値型の <input> 要素の値を
step 属性の値、または step 属性が明示的に設定されていない場合は既定の step の値だけ増加させるものです。このメソッドを呼び出すと、 value は (step * n) だけ減少します。ここで、n は指定されなかった場合、既定で 1 となり、step が指定されなかった場合、 step の既定値となります。
| 入力型 | 既定の step の値 | step の宣言の例 |
|---|---|---|
| date | 1 (日) |
7 日(1 週間)単位の増加:<input type="date" min="2019-12-25" step="7"> |
| month | 1 (ヶ月) |
12 ヶ月(1 年)単位の増加:<input type="month" min="2019-12" step="12"> |
| week | 1 (週間) |
2 週間単位の増加:<input type="week" min="2019-W23" step="2"> |
| time | 60 (秒) |
900 秒(15 分)単位の増加:<input type="time" min="09:00" step="900"> |
| datetime-local | 1 (日) |
同じ曜日:<input type="datetime-local" min="019-12-25T19:30"
step="7"> |
| number | 1 |
0.1 刻み<input type="number" min="0" step="0.1" max="10"> |
| range | 1 |
2 ずつ増加:<input type="range" min="0" step="2" max="10"> |
このメソッドを呼び出すと、フォームコントロール内で設定された制約の範囲内で、 step 属性で指定された値に引数を掛けた値だけ、フォームコントロールの値を変更します。引数が渡されなかった場合の既定値は 1 です。このメソッドは、値が max を上回ったり、 step 属性が設定する制約に違反させるようなことはしません。
stepUp() メソッドを呼び出す前の値が無効であった場合、例えば step 属性で設定した制約に適合しない場合、 stepUp() メソッドを呼び出すと、フォームコントロールの制約に適合する値が返されます。
フォームコントロールが時刻、日付、数値以外のもので、 step 属性に対応していない場合(前述の表に対応する入力型のリストを参照)、または step 値が any に設定されている場合、 InvalidStateError 例外が発生します。
構文
js
stepUp()
stepUp(stepIncrement)
引数
stepIncrement省略可-
数値です。引数が渡されなかった場合、
stepIncrementは既定で1になります。
返値
なし (undefined)。
例
この例のボタンをクリックすると、 number 入力型の値が増加します。
HTML
html
<p>
<label for="theNumber">
0 から 400 までの 5 で割り切れる数を入力してください。
</label>
<input type="number" step="5" id="theNumber" min="0" max="400" />
</p>
<p>
<label>
増加させたい段階の数を入力するか、空欄のままにしてください。
</label>
<input type="number" step="1" id="incrementInput" min="0" max="25" />
</p>
<input type="button" value="Increment" id="theButton" />
Java10Script
js
/* 関数を呼び出すボタンを生成 */
const button = document.getElementById("theButton");
button.addEventListener("click", () => {
stepOnUp();
});
function stepOnUp() {
let input = document.getElementById("theNumber");
let val = document.getElementById("incrementInput").value;
if (val) {
/* 引数付きで加算 */
input.stepUp(val);
} else {
/* 引数なしで加算。 0 を試してください。 */
input.stepUp();
}
}
CSS
css
input:invalid {
border: red solid 3px;
}
結果
stepUp メソッドに引数を渡さなかった場合、既定値は 1 になります。他の値は step 属性の値に乗算されるので、この場合は 5 となります。 stepIncrement に 4 を渡した場合、 stepUp は 4 * 5 すなわち 20 だけ行われます。この引数が 0 であった場合、数値は加算されません。 stepUp メソッドは入力が範囲外にならないように、この場合は 400 になった時点で停止し、引数として渡された値の小数点以下を切り捨てます。
段階の加算係数を 1.2 に設定してみてください。メソッドを呼び出すとどうなるでしょうか?
値を不正な数値である 4 に設定してみてください。メソッドを呼び出すとどうなるでしょうか?
仕様書
| Specification |
|---|
| HTML Standard # dom-input-stepup-dev |
ブラウザーの互換性
BCD tables only load in the browser