标签:
思路
运用http://my.oschina.net/lirongfei/blog/507823这里面介绍的兼容性input事件
动态获取当前输入的字符,判断是否符合要求,如果不符合,就用旧的正确值填充(这个旧的正确值,是你在正确的时候保存的)
难点就是动态获取当前输入的字符
下面是实现方法
get_focus_position:function(input){ var position=0; if(!input.selectionStart){ input.focus(); var sel=document.selection.createRange(); sel.moveStart("character",-input.value.length); position=sel.text.length; }else{ position=input.selectionStart; } return position; }
limit_input:function(elem,opt){ elem.setAttribute("history_value",elem.value); utils.bindInput(elem,function(event){ var value=elem.value,isOk=true; if(typeof opt.length!="undefined"){ if(elem.value.length>opt.length){ isOk=false; opt.error&&opt.error("length"); } } if(typeof opt.char!="undefined"){ var position=utils.get_focus_position(elem); var newValue=value.charAt(position-1); if(opt.char(newValue)){//不能输入的元素 isOk=false; opt.error&&opt.error("char"); } } if(isOk){ elem.setAttribute("history_value",elem.value); opt.success&&opt.success(value,position,newValue); }else{ elem.value=elem.getAttribute("history_value"); } }); }
标签:
原文地址:http://my.oschina.net/lirongfei/blog/507825