我在处理验证表单时遇到了一个问题。用户必须在价格字段中输入价格。如果他们输入0(由于某种原因)或将其留空,那么我的下面的代码就会抓住这个:
var pricevar = $("#price").val();
if (pricevar == '' || pricevar == '0') {
var errormessage = 'Product Price is empty or zero. Please enter it above.';
$("#errordiv").html(errormessage).slideDown();
return false;
} else {
return false;
}
我的输入字段如下:
<input type="text" name="price" id="price" placeholder="0.00">
但是,如果(再次,由于某种原因)用户输入0.00,则不会检测到这个并且表单已提交。我尝试了null
和empty
,但没有任何效果。有谁知道我如何检测0.00是一个空数字,但是0.01(或者很大)不是?
答案 0 :(得分:2)
您可以使用parseFloat()
将变量从字符串转换为浮点数,它应该正常工作。
if (parseFloat(pricevar) == 0) {
// your code
}
答案 1 :(得分:1)
您可以使用的一个快速解决方法是使用JavaScript Number()函数解析输入值,并检查它是否小于0(这将检查零和负数)。
如果价格为负,价格是否无效?如果是这样的话:
var pricevar = $("#price").val();
if (pricevar == '' || Number(pricevar) < 0) {
var errormessage = 'Product Price is empty, negative, or zero. Please enter it above.';
$("#errordiv").html(errormessage).slideDown();
return false;
} else {
return false;
}
如果您只想检查数字是否为零,请将if语句中的第二个运算符更新为
Number(pricevar) == 0
答案 2 :(得分:0)
您需要将pricevar
变量强制转换为数字。将它乘以1就是这样做的一种方式:
var pricevar = $("#price").val() * 1;
if (pricevar <= 0) {
console.log('product price is empty');
} else {
console.log('all good');
}