/**Form對象
封裝了常用表單操作,
Form.isChinese(str);驗證str是否為中文
Form.urlEncode(str);url編碼
Form.getFormElements(formid); 獲取表單的元素數(shù)組
最常用的方法
Form.getForm(formid); 獲取表單的數(shù)據(jù)字符串
*/
var Form=function(){
//中文
this.isChinese=function(str){
return /[/u4e00-/u9fa5]/.test(str);
}
//非字母數(shù)字下劃線
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&&len<14?2:len>14&&len<21?3:len>21&&len<28?4:5;
var r2=sLen>1&&sLen<2?1:sLen>2&&sLen<4?2:sLen>4&&sLen<6?3:sLen>6&&sLen<8?4:5;
return Math.ceil((r1+r2)/2);
}
//獲取表單內(nèi)部元素
this.getFormElements=function(form){
var elements=[];
var params= form.elements;
for(var i=0;i<params.length;i++){
var param=params[i];
var type=param.type;
if(type!=""&&type!="button"&&type!="reset" && type!="submit"){ //非按鈕,非圖片域
elements.push(param);
}
}
return elements;
}
/*獲取表單數(shù)據(jù)
1>非空驗證
2>中文加密,服務端用utf-8解密
form's id ,選項格式如下
var opts={nameIdError:"表單元素必須有name或id",valueError:"值為空"};
@result: 為請求字符串格式, 如?query=abc
用法:
var opts={nameIdError:"name id error",valueError:"value error"};
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="表單元素必須有name或id";
var defValueErr="值為空";
var params=[];//參數(shù)數(shù)組
var err={};//異常對象
var elements=this.getFormElements(form);
for(var i=0;i<elements.length;i++){
var element=elements[i];
var value=element.value;
var name=element.name?element.name:element.id;
if(!name){
err["target"]=element;
defNameErr+="["+element+"]";
nameIdError+="["+element+"]";
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;
}
if(this.isChinese(value)){
value=this.urlEncode(value);
}
params.push(name+"="+value);
}
return params.join("&");
}
};
JavaScript技術:自己的js工具_Form 封裝,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。