如果值为空或零(’0’)则validation,但如果它是“0.0”则该怎么办

我在处理validation表单时遇到了一个问题。 用户必须在价格字段中输入价格。 如果他们输入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; } 

我的输入字段如下:

  

但是,如果(再次,由于某种原因)用户输入0.00,则不会检测到并且表单已提交。 我试过nullempty但没有任何工作。 有谁知道我如何检测到0.00是一个空数字,但是0.01(或者很大)不是?

您可以使用parseFloat()将变量从字符串转换为float,它应该正常工作。

 if (parseFloat(pricevar) == 0) { // your code } 

您可以使用的一个快速解决方法是使用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 

您需要将pricevar变量强制转换为数字。 将它乘以一是这样做的一种方式:

 var pricevar = $("#price").val() * 1; if (pricevar <= 0) { console.log('product price is empty'); } else { console.log('all good'); }