你可以将输入元素的值作为数字获取
大多数情况下,在事件监听器中访问HTMLInputElement
的值时,我们使用类似e.target.value
的方式。这在大多数情况下都没问题,但是当我们想要获取输入字段的数值时,我们必须解析它并检查该值是否有效等等。这可能会变得非常烦人,特别是在处理具有许多输入字段的较大表单时。
如果我告诉你有一种更简单的方法可以从输入字段中获取数值,你会怎么想?那就是使用HTMLInputElement.valueAsNumber
,这是一个非常方便的属性,如果输入字段的值可以转换为数字,它将返回一个数值,如果转换不可能,则返回NaN
。
const quantityInput = document.getElementById('quantity-input');
let quantity;
// 不好的做法:使用parseFloat()将字符串转换为数字
quantity = parseFloat(quantityInput.value);
// 好的做法:返回一个数值
quantity = quantityInput.valueAsNumber;
通常情况下,这只适用于type="number"
的输入(尽管这可能是你最需要的地方)。另外,你还可以使用HTMLInputElement.valueAsDate
从type="date"
的输入中获取一个Date
对象,在某些情况下也可能会派上用场。