我正在尝试验证价格字段。我正在尝试这个:
var productId = document.getElementById("productId");
var productName = document.getElementById("productName");
var productPrice = document.getElementById("price");
alert(isFinite(productPrice.value));
if(isNaN(productPrice.value)||!isFinite(productPrice.value)){
error = document.getElementById("priceError");
error.innerHTML = "Please enter correct value";
productPrice.style.border="thin solid red";
}else{
error = document.getElementById("priceError");
error.innerHTML = "";
}
当输入仅是空格/多个空格时,行警报提示我为真。
这是我的HTML页面。
<td>Price</td>
<td><input type = "text" id = "price" size = "14"/></td>
谢谢
最佳答案
我不能说为什么会发生这种情况,但是这段代码应该可以解决问题
isFinite(parseFloat(" ")) // false
// because -->
parseFloat(" "); // => result NaN
// tested in Chrome 27+ on Win7
isNaN here的MDN引用中
它说
isNaN(" "); // false: a string with spaces is converted to 0 which is not NaN
更新:
在isFinite的引用Here中的引用中,它声明isFinite仅在参数为以下情况时返回false:
NaN
正无穷大(
Number.POSITIVE_INFINITY
)负无穷大(
Number.NEGATIVE_INFINITY
)在任何其他情况下,它都返回true。 (如Paul S所述)
现在,我认为我得到了所有的失败,并且在那门课程中学到了一些东西。 :)
关于javascript - is有限的空间赋予了真正的值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17511990/