今天在写代码时发现一个容易忽略的问题,写下来以供参考
这是做的一个验证,设置的最小值minValue不能小于参数本身的最小值min
当输入正数的时候都没有问题,但是输入负数时就出现问题了
正确设置参数var minValue = -30 ,var min = -300 ,console.log(a>b) 结果返回false
$("#table tbody tr").each(function() {
var paraId = $(this).find(".paraId").text();
var min = $("#min_"+paraId).attr("data-rule-min"); =>-300
var minValue = $(this).find("input[name='min']").val();=>-30
if( minValue < min ){ =>true
return false;
}
});
由于js无法分辨min 和minValue的类型,所以把数值作为String类型处理了
处理这种问题就是要将类型转换为int,有三种方法:
1,最简单的一种:乘以1 (或者除以1)
$("#table tbody tr").each(function() {
var paraId = $(this).find(".paraId").text();
var min = $("#min_"+paraId).attr("data-rule-min")*1; =>-300
var minValue = $(this).find("input[name='min']").val()*1;=>-30
if( minValue < min ){ =>FALSE
return false;
}
});
2,Number(minValue)FALSE
3,parseInt(minValue)FALSE