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
例外が発生します。
構文
stepUp()
stepUp(stepIncrement)
引数
stepIncrement
省略可-
数値です。引数が渡されなかった場合、
stepIncrement
は既定で1
になります。
返値
なし (undefined
)。
例
この例のボタンをクリックすると、 number 入力型の値が増加します。
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
/* 関数を呼び出すボタンを生成 */
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
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