Ext TextField默認提示信息,並支持中文按2個長度計算

/**
 * @class  Ext.form.TextField
 * @override  Ext.form.TextField
 * @description  修改TextField的默認提示信息,並支持中文2位的計算
 */
Ext.override(Ext.form.TextField,{
      //重寫驗證涵數
    validateValue : function(value){
              if(this.allowBlank == false){ //不允許爲空
              if(value == null || value == ''){
                            this.markInvalid(String.format(this.blankText,value));
                            return false;
                     }
               }
               var maxLen = this.maxLength;
               var maxLenText = this.maxLengthText;
               if(maxLenText.indexOf('{0}') != -1){
                     if(maxLen != null && maxLen != 'undefined' && maxLen > 0){
                           var regex = /[^\x00-\xff]/g;  //中文正則
                  var len ;
                           if(value instaceof String){
                                 //將中文替換成2位字符
                      len = value.replace(regex,'**').length;
                            }else{
                                 len = value.length;
                            }
                            var label = this.fieldLabel;
                            if(label != null && label != 'undefined'){
                                 //去掉fieldLabel中生成的不必要字符
                      if(label.indexOf('</') != -1 ){
                                      label = label.substring(label.lastIndexOf('>')+1, label.length);
                                 }
                                 if(len > maxLen){
                                    //驗證未通過,並設置提示信息
                        this.markInvalid(String.format(label+'長度不能大於'+maxLen+'位!(中文佔2位)'));
                                    return false;
                                 }
                                 return true;
                           }
                      }
                }else{
                      var len = value.length;
                      if(len > maxLen){
                           this.markInvalid(String.format(maxLenText ,value));
                           return false;
                      }
                    return true;
                }
        }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章