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

时间:2015-07-22 14:59:25

标签: jquery

我在处理验证表单时遇到了一个问题。用户必须在价格字段中输入价格。如果他们输入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,则不会检测到这个并且表单已提交。我尝试了nullempty,但没有任何效果。有谁知道我如何检测0.00是一个空数字,但是0.01(或者很大)不是?

3 个答案:

答案 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');
}