/**양식 개체
는 일반적인 양식 작업을 캡슐화합니다.
Form.isChina(str); str이 중국어인지 확인하세요.
Form.urlEncode(str); url 인코딩
Form.getFormElements(formid); 가장 일반적으로 사용되는 요소 배열 방법
Form.getForm(formid)은 양식의 데이터 문자열을 가져옵니다
*/
var Form=function (){
//중국어
this.isChina=function(str){
return /[u4e00-u9fa5]/.test(str)
}
// 영숫자가 아닌 밑줄
this.isSpecial=function(str){
return /W/.test(str)
}
//주소 인코딩
this.urlEncode=function(str) ){
return encodeURI(encodeURI(str));
}
//비밀번호 입력 수준, 최대 수준 5
this.checkLevel=function(str){
var len=str. length;
var sLen=str.match(/W /g).join('').length
var r1=len<8?1:len>8&<14?2:len>14&&len< 21?3 :len>21&&len<28?4:5;
return Math.ceil((r1 r2)/2)
}
//양식의 내부 요소 가져오기
this.getFormElements=function(form){
var elements=[] ;
var params= form.elements
for(var i=0;i
var param=params[i];
var type=param.type ;
if(type!=""&&type!="button"&&type!="reset" && type!="submit"){ / /버튼 없음, 이미지 없음 도메인
elements.push(param)
}
}
return elements;
}
/*Get form data
1> Null이 아닌 검증
2>중국어 암호화, 서버는 utf-8을 사용하여
양식 ID를 해독합니다. 옵션 형식은 다음과 같습니다.
var opts={nameIdError: "양식 요소에는 이름 또는 ID가 있어야 합니다. ", valueError: "값이 비어 있습니다."};
@result: 요청 문자열 형식입니까? query=abc
사용법:
var opts={nameIdError:"name id error", valueError:"값 오류"};
try{
var result = Form.getForm(form,opts) ;
}catch(e){
alert(e.message); e.target.focus();
return;
}
alert(result)
*/
this.getForm=function(form,options){
var defNameErr= "양식 요소에는 이름 또는 ID가 있어야 합니다.";
var defValueErr="값이 비어 있습니다.";
var params =[];//매개변수 배열
var err={};//예외 개체
var elements=this.getFormElements(form);
for(var i=0;ivar element=elements[i]
var value=element.value ;
var name=element.name?element.name:element.id;
if(!name) {
err["target"]=element
defNameErr ="[" 요소 " ]";
nameIdError ="[" 요소 "]";
err["message"]=! options?defNameErr:options.nameIdError?options.nameIdError:defNameErr;
}else if(!value ){
err["target"]=element;
defValueErr ="[" element "]"
options.valueError ="[" element "]"
err["message" ]=!options?defValueErr:options.valueError?options.valueError:defValueErr;
}
if(err ["target"]){
throw err; .isChina(값)){
value=this.urlEncode(값);
}
params .push(name "=" value)
}
return params.join(" &");
}
};