当前位置: 代码迷 >> Web前端 >> 带空格的银行账户展示输入
  详细解决方案

带空格的银行账户展示输入

热度:189   发布时间:2013-08-04 18:26:15.0
带空格的银行账户显示输入
//-----------银行账户,4个数字用空格隔开----------- 
//-----------显示字段 class = bankNumFm;
//-----------值字段class = bankNum
DSDetail.bindBankNumFormat = function(bankEl){
    if(!bankEl.size()){
        return ;
    }
    var formatBankNum = function(value){
        if(value){
            value = value.replace(/(\d{4}\s*)/g,function($0,$1){
                return $1.replace(/\s+$/g,"") + ' ';
            });
            //消灭最后的空格
            value = value.replace(/\s+$/,"");
        }
        return value;
    }; 
    
    var setValue = function(fmEl,valEl,value){
        
        value = value.replace(/[^\d]/g,"");
        //设置隐藏域
        valEl.val(value.replace(/\s+/g,""));
        //设置显示域
        fmEl.val(formatBankNum(value));
    };
    
    bankEl.each(function(){
        var fmEl = $(this);
        var valEl = fmEl.siblings(".bankNumVal");
	    
	    if("onpropertychange" in this){
	        fmEl.bind("propertychange",function(){
	            setValue(fmEl,valEl,this.value);
	        });
	    }else if("oninput" in this){
	        fmEl.bind("input",function(e){
	            setValue(fmEl,valEl,this.value);
	        });
	    }
	    fmEl.bind("keydown",function(e){
	        if ((e.keyCode >= 48 && e.keyCode <= 57) ||   //
	            (e.keyCode >= 96 && e.keyCode <= 105) ||  //小键盘数字
	                e.which === 37 || e.which === 39      //左右键
	                 || e.which === 8 || e.which === 46){ //回退、删除键
                        
	            setValue(fmEl,valEl,this.value);
	        }else{
	            return false;
	        }
	    });
	    
	    //初始化
	    setValue(fmEl,valEl,fmEl.val());
    
    });
};

    //--------银行账户格式化---------------
    DSDetail.bindBankNumFormat($(".bankNumFm"));
  相关解决方案