HTMLInputElement: stepUp() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

HTMLInputElement.stepUp() 方法会根据 step 属性的值,或者在未显式设置 step 属性时使用默认的 step 值,来增加数字类型 <input> 元素的 value。调用该方法时,value 会增加 (step * n),其中 n 在未指定时默认为 1,而 step 在未指定时默认为 step 的默认值。

输入类型 默认 step 值 示例 step 声明
日期 1 (天) 7 天(一周)增量
<input type="date" min="2019-12-25" step="7">
月份 1 (月) 12 个月(一年)增量
<input type="month" min="2019-12" step="12">
1 (周) 两周增量
<input type="week" min="2019-W23" step="2">
时间 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">
数字 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">
    Enter a number between 0 and 400 that is divisible by 5:
  </label>
  <input type="number" step="5" id="theNumber" min="0" max="400" />
</p>
<p>
  <label>
    Enter how many values of step you would like to increment by or leave it
    blank:
  </label>
  <input type="number" step="1" id="incrementInput" min="0" max="25" />
</p>
<input type="button" value="Increment" id="theButton" />

JavaScript

js
/* make the button call the function */
const button = document.getElementById("theButton");
button.addEventListener("click", () => {
  stepOnUp();
});

function stepOnUp() {
  let input = document.getElementById("theNumber");
  let val = document.getElementById("incrementInput").value;

  if (val) {
    /* increment with a parameter */
    input.stepUp(val);
  } else {
    /* or without a parameter. Try it with 0 */
    input.stepUp();
  }
}

CSS

css
input:invalid {
  border: red solid 3px;
}

结果

请注意,如果您不向 stepUp 方法传递参数,它将默认为 1。任何其他值都是 step 属性值(在本例中为 5)的倍数。如果您将 4 作为 stepIncrement 传递,输入将 stepUp 4 * 5,即 20。如果参数为 0,数字将不会增加。stepUp 不允许输入超出范围,在本例中,当达到 400 时停止,并将传递的浮点数向下取整。

尝试将 step increment 输入设置为 1.2。调用该方法时会发生什么?

尝试将值设置为 4,这是无效的。调用该方法时会发生什么?

规范

规范
HTML
# dom-input-stepup-dev

浏览器兼容性

另见