【发布时间】:2014-11-03 19:56:50
【问题描述】:
我想使用 type="number" 的表单输入,并且只允许输入数字。
<input type="number" class="form-control fc-input"/>
我没有提交按钮,而是在输入失去焦点后检查值。但是,当您使用 type="number" 并输入非数字时,输入的 valueAsNumber 和 value 属性将无用(分别为“NaN”)。这样做的问题是我想区分用户输入空字符串(“”)和用户输入非数字值(例如 123abc)。当输入为空时我想执行函数a,如果它只是一个非数字我想执行函数b(否则执行c)。
有没有像这样区分 NaN 输入和空 ("") 输入的好方法?
【问题讨论】:
-
也许我误解了你的问题,但为什么不是
if(value === NaN)和if(value === "")? -
NaN 的有趣之处在于它不等于自身...
NaN === NaN // false -
@Jordan:
if(value === NaN)永远是false,不管value是什么。没有什么是===到NaN,包括NaN。 -
@Jordan 问题是,每当我输入空字符串(删除所有输入)和输入 NaN 值(“abc”)时,该值将始终为“”,同时valueAsNumber 将始终为 NaN,因此我无法区分这两种情况。
标签: javascript jquery html validation