ExtJS4.0有关自定义函数

//中文按2个字节 英文数字1个字节
function countCharacters(str){
     var totalCount = 0;
     for (var i=0; i<str.length; i++) {
         var c = str.charCodeAt(i);
         if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
             totalCount++;
         }else {    
             totalCount+=2;
         }
     }
     return totalCount;
}
//自定义验证开始
Ext.apply(Ext.form.field.VTypes, {
    //验证名字不超过32个字节
    serverNameLength:  function(v) {
        if(countCharacters(v)>32){return false;}else{return true;}
    },
    serverNameLengthText: '服务器别名长度不能超过32个字节',
    //验证ip不重复
    IPAddress:  function(v) {
            var flag=false;
            Ext.Ajax.request({
                url: "serverInfoAction.do?m=validateIp",
                async:false,//这一项必须加上,否则后台返回true,flag的值也为false
                params: {ipStr:v},
                method: "POST",
                success: function(response) {
                   var text = response.responseText;
                   var responseArray = Ext.JSON.decode(text);
                           if(responseArray.success=='true'){
                           //alert("true");
                               flag = true; //0
                           }
                }
            });
            return flag;
    },
    IPAddressText: 'ip地址已存在',
    IPAddressMask: /[\d\.]/i,
    //用于编辑的时候,ip地址验证唯一性,此时要保存原来的值,如果和原来的值相等,也要返回true
    IPAddressUpdateValidate:  function(v) {
            var flag=false;
            if(oldIp==v){
                flag=true;
            }else{
             Ext.Ajax.request({
                url: "serverInfoAction.do?m=validateIp",
                 async:false,//这一项必须加上,否则后台返回true,flag的值也为false
                params: {ipStr:v},
                method: "POST",
                success: function(response) {
                   var text = response.responseText;
                   var responseArray = Ext.JSON.decode(text);
                           if(responseArray.success=='true'){
                           //alert("true");
                               flag = true; //0
                           }
                }
             });
            }
            return flag;
    },
    IPAddressUpdateValidateText: 'ip地址已存在',
    appNameAddValidate:function(val,field){  
    		var nametemp;
        Ext.Object.each(field, function(key, value, myself) {
    		//alert(key + ":" + value);
            if (key === 'name') {
               nametemp = value; 
               return false;// stop the iteration
            }
        });
        var flag=1;
        if(countTemp == 1){
             flag = 1;
        }else{
            var ary=new Array();
            for(var m=0;m<countTemp;m++){
                 var tem = addForm.getForm().findField('appName'+(m+1)).getValue();
                if( nametemp != addForm.getForm().findField('appName'+(m+1)).getName()){
                    ary[m]=tem;
                }
            }
            for(var i=0;i<ary.length;i++){
                if(ary[i]==val){
                    flag = 0;
                    break;
                }
            }
        }
        if(flag == 0){
            return false;
        }else{
            return true;
        }
    }, 
    appNameAddValidateText:'应用名称不可重复',   
    appNameUpdateValidate:function(val,field){  
    		var nametemp;
        //循环遍历field,取出该对象的name属性,并得到name值 
          Ext.Object.each(field, function(key, value, myself) {
             //alert(key + ":" + value);
               if (key === 'name') {
                  nametemp = value; 
                  return false;// stop the iteration
              } 
          });
          var flag=1;
          if(clickCountUpdate == 1){
               flag = 1;
          }else{
              var ary=new Array();
              for(var m=0;m<clickCountUpdate;m++){
                   var tem = updateForm.getForm().findField('appName'+(m+1)).getValue();
                  if( nametemp != updateForm.getForm().findField('appName'+(m+1)).getName()){
                      ary[m]=tem;
                  }
              }
              for(var i=0;i<ary.length;i++){
              
                  if(ary[i]==val){
                      flag = 0;
                      break;
                  }
              }
          }
          if(flag == 0){
              return false;
          }else{
              return true;
          }
    }, 
    appNameUpdateValidateText:'应用名称不可重复',
    portValidate:function(val,field){  
    		var nametemp;
        Ext.Object.each(field, function(key, value, myself) {
    				//alert(key + ":" + value);
            if (key === 'name') {
               nametemp = value; 
               return false;// stop the iteration
            }
        });
        var flag=1;
        if(countTemp == 1){
             flag = 1;
        }else{
            var ary=new Array();
            for(var m=0;m<countTemp;m++){
                 var tem = addForm.getForm().findField('appPort'+(m+1)).getValue();
                if( nametemp != addForm.getForm().findField('appPort'+(m+1)).getName()){
                    ary[m]=tem;
                }
            }
            for(var i=0;i<ary.length;i++){
            
                if(ary[i]==val){
                    flag = 0;
                    break;
                }
            } 
        }
        if(flag == 0){
            return false;
        }else{
            return true;
        }
    }, 
    portValidateText:'端口不可重复',
    portUpdateValidate:function(val,field){  
    		var nametemp;
        Ext.Object.each(field, function(key, value, myself) {
    			//alert(key + ":" + value);
          if (key === 'name') {
             nametemp = value; 
             return false;// stop the iteration
          }
        });
        var flag=1;
        if(clickCountUpdate == 1){
             flag = 1;
        }else{
            var ary=new Array();
            for(var m=0;m<clickCountUpdate;m++){
                 var tem = updateForm.getForm().findField('appPort'+(m+1)).getValue();
                if( nametemp != updateForm.getForm().findField('appPort'+(m+1)).getName()){
                    ary[m]=tem;
                }
            }
            for(var i=0;i<ary.length;i++){
            
                if(ary[i]==val){
                    flag = 0;
                    break;
                }
            } 
        }
        if(flag == 0){
            return false;
        }else{
            return true;
        }
    }, 
    portUpdateValidateText:'端口不可重复'
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值