代码重构四

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 热爱生活,热爱编程。
原文地址:https://www.cnblogs.com/jsRunner/p/3576791.html