小管

winner2009

   :: 首页  ::  ::  ::  :: 管理

 

我在jquery  上看到的一个使用&&操作的例子(在jquery-ui 下面 demos/dialog/modal-form中),感觉不错,这是我的实现,如下:

 

场景:

  假如我们有两个文本框需要验证非空。

代码:

  

代码
 1 
 2 //validUserName  validPwd 是两个div,分别显示错误信息,通常我们放在用户名和密码这两个文本框的的后面。
 3 
 4 function register() {
 5 
 6             var userName = $('#txtUserName').val();
 7             var pwd = $('#txtPasword').val();
 8 
 9             var bValid = true;
10            
11             bValid = bValid && checkNull(userName, "用户名""validUserName");            
12             bValid = bValid && checkNull(pwd, "密码""validPwd");
13             
14                         
15             if (bValid) {
16                 return true;
17             }
18             else {
19                 return false;
20             }
21         }

 

 

我们可以看到第11 12行,  也就是说只要 checkNull ()函数为返回假,我们开始定义的bValid 求与后也会为假。即整个函数返回假。

 

其实这也没有什么,我们完全可以使用if  else 来解决。但是问题来了如果有很多的文本框需要验证,那是不是会需要很多的if else啊。

 

使用&&就没有这么麻烦了 我们完全可以在 第12行下面 写 bValid = bValid && checkNull(pwd, "邮件""......") 等等很多都可以。

 

 

代码
        function checkNull(t, n, obj) {

            
if (t == "") {
                updateTips(
"忘填" + n + "了吧!",obj);
                
return false;
            } 
else {
            updateTips(
"",obj);
                
return true;
            }

        }

        
function updateTips(t, obj) {
            
var tips = $("#" + obj);
            tips.text(t);
        }

 

 

看起来复杂了,但是心里更清楚了。这难道就是重构的结果?

 

 

posted on 2010-09-06 11:40  管宇  阅读(244)  评论(0编辑  收藏  举报