jquery 表单转json 插件


//Author:rikugun
jQuery.fn.extend({
fillForm:function(options){
var settings = jQuery.extend({
prefix:'' //表单项name前缀
,data:{} //数据默认值
},options);
this.each(function(){
var that =jQuery(this);
if(jQuery.inArray(that.attr('tagName').toLowerCase(),['input','select','radio','textarea'])>-1){
that.val(settings.data[that.attr('name')]);
}else{
for(var item in settings.data){
try{
that.find('[name=\''+settings.prefix+item+'\']').val(settings.data[item]);
}catch(e){
if(window.console){
console.error('未能获取元素:'+settings.prefix+item);
}
}
}
}
});
}
,getForm:function(options){
var settings = jQuery.extend({
prefix:'' //表单项name前缀
,data:{} //数据默认值
},options);
var ret =[];
var forms = this;
if(this.attr('tagName').toLowerCase()!=='form'){
forms = this.find('form');
}
forms.each(function(){
var that =jQuery(this);
var o ={};
that.find('input,select,radio,textarea').each(function(){
var el = jQuery(this);
var fieldFullName = el.attr('name');
var fieldName =fieldFullName.replace(settings.prefix,'');
if(settings.data[fieldName]){
o[fieldName] =settings.data[fieldName];
return;
}
if(settings.prefix && fieldFullName.indexOf(settings.prefix)<0 ){
//不符合前缀或已设置默认值
return;
}
o[fieldName] = el.val();
});
ret.push(o);
});
if(ret.length === 1)return ret[0];
return ret;
}
});

//usage:
$('#form_mobile_model').fillForm({
prefix:'model__',
data:{
'name':'aa',
'newName':'bb'
});

var m = $('#form_mobile_model').getForm({
prefix:'model__'
});
//m ={'name':'aa','newName':'bb'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值