代码重构四
2014年3月2日 14:44:56
哈哈,很开心。今天发现一个前辈插件的错误。
前辈插件:http://jun-lu.github.io/Stip/doc/index.html
介绍:
Stip 适用于页面提示效果。兼容主流浏览器(ie,firefox,chrome,opera,Safari 等),不依赖其他框架,不使用图片(三角是用CSS做的)
由于工作上需要表单提示和表单验证。 于是找啊找,找到前辈写的好东东。
提示的插件很正常,错误的地方在表单验证 中
最小值和最大值 无法正常判断。 费了很大功夫,我研究下了代码,找到了错误根源。才疏学浅,唉,蛋疼
从上面url的下载的 Checkform.js 有问题
minValue:function(str, min){ return tool.isFloat(str) ? parseFloat(str) >= min : false; }, maxValue:function(str, max){ return tool.isFloat(str) ? parseFloat(str) <= max : false; }, minLength:function(str, min){
这里的
parseFloat使用不当
应该换做
parseInt
错误原因:
js中的var定义的变量默认是字符串,如果单纯的比较字符串的话,会出现错误,需要先转化为int类型在做比较。
例如: 110和18在你写的程序中是18大的,因为 这两个数都是字符串,而1和1相等之后比较1和8,当然是8大,所以18大
-----------------------
2014年3月2日 15:06:48 我嚓,错误不止上面一个。
逻辑上也存在错误。估计前辈是晕了。
修改后正常 代码为:
minValue:function(str, min){ return tool.isFloat(str) ? parseInt(str) >= min : str>=min; }, maxValue:function(str, max){ return tool.isFloat(str) ? parseInt(str) <= max : str<=max; },
QQ:540045865
热爱生活,热爱编程。