easyui的numberbox的比较两个输入参数时出现的问题
今天早上和往常一样坐着自己的豪华大巴来到公司,刚打开电脑就被别人说自己写的程序有bug,于是我半信半疑的去看了,bug如下:
前台页面
本来写了一个商品价格和优惠价格的逻辑判断,但是在测试时却没有生效,
页面代码如下:
页面的JS判断代码:
function onChange(newValue,oldValue) {
var price=$("#originalPrice").val();
if(price<newValue){
alert("优惠价格必须小于商品价格");
$("#discountPrice").numberbox('clear');
}
}
我输入的商品价格是456,优惠价格是4556,debug调试发现判断后直接跳过if判断,没有执行里面的代码,原来easyUI的numberbox的框里面虽然放的是数字,但并不是真正意义上的数字,而是字符串,比较时比较的是字符串的长度,需要将字符串转换一下,修改后的代码如下:
function onChange(newValue,oldValue) {
var price=$("#originalPrice").val();
if(parseFloat(price)<parseFloat(newValue)){
alert("优惠价格必须小于商品价格");
$("#discountPrice").numberbox('clear');
}
}
这是一个坑,切记,切记,切记!!!!!!!!!!!!!!!!!!!!!!!!!!!