다음은 js 코드입니다. (객체를 바인딩할 때 매우 촌스러운 느낌이 듭니다. 전문가의 조언을 바랍니다!)
function validator(obj,option){//Validation object
var self = this
if(!(self instanceof validator))
새 유효성 검사기 반환(obj,option);
self.source={'mobile':'^(13|14|15|18)[0-9]{9}$','postcode':' ^\d {6}$','정수':'^-?\d*$','이메일':'^\w ((-\w )|(\.\w ))*\@[A -Za- z0-9] ((\.|-)[A-Za-z0-9] )*\.[A-Za-z0-9] $','url':'^http[s]? :\/ \/([\w-] \.) [\w-] ([\w-./?%&=]*)?$'}for(self.source의 var i) {
if(i==option.type)
self.type=self.source[i]
}
self.tag=2
self.input=obj; 🎜>self .options=option;
self.tip=document.getElementById(self.options.tips)
self.text=self.tip.innerHTML;
self.init(obj); 🎜>}
validator.prototype.init=function(o){
var self=this;
addEvent(o,'focus',function(){
self.focus();
} );
addEvent(o,'blur',function(){
self.valid();
})
}
validator.prototype.valid=function( ){
var self=this;
var reg=self.options.reg||self.type
if(new RegExp(reg).test(self.input.value.replace(/s) /ig, ''))){
self.tip.className='validator_oncorret';
self.tip.innerHTML='입력이 정확합니다.'
self.tag=1; else{
self.tip.className='validator_onerror';
self.tip.innerHTML='죄송합니다. 입력한 내용이 규정을 준수하지 않습니다! ';
self.tag=0;
}
}
validator.prototype.focus=function(){
this.tip.className='validator_onfocus'; tip.innerHTML=this.text;
}
function addEvent(el,type,fn){ //이벤트 바인딩
if(el.attachEvent) {
el['e' type fn ] = fn; //창 대신 el 객체를 가리키도록 IE에서 요소 참조를 복사합니다.
el[type fn] = function(){el['e' type fn](window.event);}
el.attachEvent('on' type, el[type fn]);
}else
el.addEventListener(type, fn, false)
}
//페이지 호출 방법
var inputs=document.getElementsByTagName('input');//여기에 쓰는 내용이 이상하고 우아하지 않은 것 같아서 아직 최적화할 방법을 찾지 못했습니다.
var arr=[]; >arr[0]= validator(inputs[0],{type:'postcode',tips:'m1'})
arr[1]=validator(inputs[1],{type:'url', Tips:'m2'} );
arr[2]=validator(inputs[2],{type:'email',tips:'m3'})
arr[3]=validator(inputs[ 3],{유형: '모바일',tips:'m4'});
arr[4]=validator(inputs[4],{type:'integer',tips:'m5',reg:'^ -?\d*$ '});
function submitForm(){//제출 양식 필터링
var l=arr.length;
for(var i in arr){
if(arr [i].tag= =1)
l--;
else if(arr[i].tag==2){
arr[i].valid()
}
}
if(l!=0)return false;
}
다음은 페이지 데모입니다. 어떻게 되는지 모르겠습니다. 실행 가능한 코드를 보냅니다.
코드 복사