verify.jsフォーマット検証プラグイン
4206 ワード
これは極めて簡潔なフォーム検証プラグインで、50行のコードしかないです.半パッケージモードに属しています.業務論理コードは任意に作成できます.コアコードは以下の通りです.
下に転送ゲートが付いています.詳しいテストデモは自分でジャンプしてダウンロードしてください.ありがとうございます.https://github.com/cloverso/verify
(function(){
//
if(!$.fn.hasOwnProperty('verify')){
$.fn.verify = function(config) {
var fields = [], item;
if (!config) return;
//
function isFunction(obj) {
return !!(obj && obj.constructor && obj.call && obj.apply);
}
// ( )
function handleSubmit() {
var i, errors = false, len = fields.length;
for (i = 0; i < len; i++) {
if (!fields[i].testValid()) errors = true;
}
if (errors) return false;
if (isFunction(config.success)) return config.success();
}
function process(opts, selector) {
var field = $(selector),
error = {message: opts.message || ''},
errorEl = config.errorTemplate(error);
// input ,
fields.push(field);
//
field.testValid = function testValid() {
var temp, error, el = $(this), val = el.val();
error = !opts.test(val);
if (error) {
el.after(errorEl);
return false;
} else {
temp = errorEl.get(0);
temp.parentNode && temp.parentNode.removeChild(temp);
return true;
}
};
// input
field.on('blur', field.testValid);
}
//
for(item in config.fields) {
process(config.fields[item], item)
}
//
if (config.submitButton) {
$(config.submitButton).click(handleSubmit);
} else {
this.on('submit', handleSubmit);
}
// ,
return fields;
}
}
})();
プラグインの呼び出し方法は以下の通りです.(function(){
//
$('#register').verify({
fields:{
// ,
'#register input[name="phone"]':{
//
message:' , ',
// , ,true ,false , , bool ,
test:function(val){
var reg = /^(1[3-8][0-9])\d{8}$/;
return reg.test(val);
}
},
'#register input[name="password"]':{
message:' ',
test: function (val) {
if (!val) return false;
var reg = /^[a-zA-Z0-9]{6,20}$/;
return reg.test(val);
}
},
'#register input[name="repassword"]':{
message:' !',
test:function(val){
var password = $('input[name="password"]').val();
if(password != val) {
return false;
} else {
return true;
}
}
}
},
// , ,
errorTemplate:function(error){
return $('' + error.message + '');
},
// ,
success:function(){
//coding~~
}
// , , form.submit;
submitButton: '#register .submit'
});
})
本来は、プラグインに固定されたフォームの検証方法を実装したいですが、さまざまな業務のニーズがあることが分かりました.確かに、このような方法で提示されています.一般的な検査プロセスだけをパッケージ化して、業務ロジックは自分で挿入します.下に転送ゲートが付いています.詳しいテストデモは自分でジャンプしてダウンロードしてください.ありがとうございます.https://github.com/cloverso/verify