`

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:'端口不可重复'
   
   
   
   
   
   
  
   
});

分享到:
评论

相关推荐

    免费 Extjs4.0教程视频

    ### 免费Extjs 4.0教程视频知识点概览 #### 第一讲:Extjs 4.0概述与Hello World程序 - **Extjs 4.0简介**: - Extjs是一款基于JavaScript的开源前端框架,用于构建交互式的Web应用程序。 - 版本4.0引入了许多新...

    EXTJS4.0视频教程配套代码包含action类

    EXTJS4.0的Action机制允许开发者自定义请求参数、URL、处理函数以及错误处理方式。这些设置可以通过配置对象传递给`Ext.data.operation.Operation`实例,然后由数据代理执行。在11课之后的内容,可能涉及到更复杂的...

    EXT 登录的设计 extjs4.0

    7. **验证(Validation)**:EXTJS 4.0 提供了强大的表单验证功能,可以通过 `Ext.form.field.VTypes` 或自定义验证函数确保用户输入符合预期格式,如检查密码强度。 8. **响应式设计**:EXTJS 支持响应式布局,...

    Extjs4.0视频教程和源代码,另附文档翻译

    ### Extjs4.0概述与Hello World程序 #### 第一讲: Extjs4.0概述与Hello World程序 - **Extjs4.0简介**:Extjs是一款基于JavaScript的前端框架,它提供了一系列丰富的UI组件,支持桌面级应用程序的开发。Extjs4.0...

    Extjs4.0 mvc模式开发

    在ExtJS中,可以创建自定义的数据模型类,用以封装数据属性和行为。 - **视图(View)**:负责展示数据和用户交互。在ExtJS中,视图通常是组件(如表格、窗口、面板等),它们通过绑定到模型或store来展示数据。 -...

    ExtJS4.0下的gridPanel组建完全版

    Columns可以通过`xtype`属性设置不同类型的列,如文本列、数字列、日期列等,还可以添加自定义渲染函数来实现特定的数据显示效果。 4. **View**:View是GridPanel的视图层,负责将Store中的数据渲染到页面上。它...

    自己写的ExtJS4.0用MVC的示例

    总结来说,这个“自己写的ExtJS4.0用MVC的示例”展示了如何利用MVC模式在客户端构建复杂的应用程序,提供了良好的代码组织和可维护性。通过研究这个示例,你可以学习到如何有效地使用模型、视图和控制器,以及它们...

    Extjs4.0学习,适合新手

    对于新手来说,掌握ExtJS 4.0的基本概念和核心组件是入门的关键。 首先,你需要了解如何获取和设置学习环境。你可以从官方网站(例如http://extjs.org.cn/)下载所需的ExtJS发布包。如果你的开发环境已经包含了...

    extjs4中文视频下载地址

    ### ExtJS 4.0 技术中文视频知识点解析 #### 一、ExtJS 4.0 概述与 Hello World 程序 - **概述**:ExtJS 是一款基于 JavaScript 的开源前端框架,用于构建复杂的 Web 应用程序。ExtJS 4.0 版本在原有基础上进行了...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    - 通过自定义事件处理函数,确保用户选择的合法性。 综上所述,ExtJS 4.x的ComboboxTree组件是实现下拉树形菜单的强大工具,它结合了下拉框的简洁和树结构的层次感,提供了丰富的定制选项,能满足多种场景下的需求...

    ExtJSWeb应用程序开发指南(第2版)

    1.4 ExtJS4.0新特性 1.5 ExtJSUI组件基础 1.6 了解一下类似技术 1.7 本章小结 第2章 开始ExtJS之旅 2.1 认识ExtJS的开发包 2.2 也从Helloworld开始 2.3 ExtJS中的基本概念 2.4 非常有用的开发工具 2.4.1 ...

    Ext4.0教程

    1. **创建Hello World应用**:在WebRoot目录下建立一个名为`helloworld.js`的文件,输入Ext4.0的`application`配置代码,定义应用名称和启动函数,创建一个带有标题和内容的`Viewport`容器。 2. **HTML结构**:创建`...

    Ext4.0中文api[帮助文档]

    你可以尝试在`Ext.onReady`回调函数中添加代码,如弹出对话框,以验证其工作原理。 此外,`Ext.get`是另一个常用的方法,用于根据ID获取页面元素,返回的是一个Element对象,你可以通过Element.dom属性直接操作底层...

    Ext Js权威指南(.zip.001

    Ex4.0共2个压缩包特性,《ext js权威指南》 前 言 第1章 ext js 4开发入门 / 1 1.1 学习ext js必需的基础知识 / 1 1.2 json概述 / 3 1.2.1 认识json / 3 1.2.2 json的结构 / 3 1.2.3 json的例子 / 4 1.2.4 ...

Global site tag (gtag.js) - Google Analytics