代码重构四

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;
				},

 

 

 

posted on 2014-03-02 14:54  jsRunner  阅读(199)  评论(0编辑  收藏  举报

导航