jQuery基于json对象自动给表单元素赋值
2016-07-07 10:05
597 查看
为了提高前端小伙伴的开发效率,造了个基于json对象根据表单元素的name属性自动赋值的轮子
注意: 表单的name属于与json对象的属性名为一致,保持继承链。例如 input name='a.b.c' 表示json对象里面的a属性里面的b属性的c属性。
json2form:function(obj){
var nodeParent = null;
var value = undefined;
var $el = null;
var nodeName = "";
for(var i in obj){
value= obj[i] ;
if(value === undefined || value===null){
continue;
}
if(typeof value == 'object'){
nodeParent=obj.nodeParent;
value.nodeParent=nodeParent?nodeParent+"."+i : i;
if(value instanceof Array){
for(var mm=0;mm<value.length;mm++){
var ms=value[mm];
if(typeof ms == 'object'){
nodeParent=ms.nodeParent;
ms.nodeParent=ms.nodeParent?ms.nodeParent+"."+i+"["+mm+"]":i+"["+mm+"]";
arguments.callee(ms);
}
}
$el=$("[name='"+i+"']");
if($el.is(":checkbox")){
$el.each(function(){
if($(this).val() == value){
$(this).prop("checked",true);
}
})
}
else if($el.is(":radio")){
$el.each(function(){
if($(this).val() == value){
$(this).prop("checked",true);
}
})
}
}else{ //递归
arguments.callee(value);
}
}
else{
nodeName=obj.nodeParent?obj.nodeParent+"."+i : i ;
$el=$("[name='"+nodeName+"']");
if($el.length > 0){
// console.log("匹配数据名称:"+nodeName+"值:"+value);
if($el.is(":text")||$el.attr("type")=="hidden"){
if($el.data("money") && $el.data("money") == "money"){
value = outputdollars(value);
}
$el.val(value);
}else if($el.is(":radio")){
$el.each(function(){
if($(this).val()==value){
$(this).prop("checked",true);
}
})
}
else if($el.is("select")){
$el.find("option").filter(function(){return $(this).val() == obj[i];}).prop("selected",true);
}else if($el.is("textarea")){
$el.val(value)
}
}
}
}
}
注意: 表单的name属于与json对象的属性名为一致,保持继承链。例如 input name='a.b.c' 表示json对象里面的a属性里面的b属性的c属性。
相关文章推荐
- jQuery实现form表单元素序列化为json对象的方法
- 基于jquery把表单转成成json对象
- 表单序列化与反序列化JSON对象(基于jQuery)
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- jQuery实现form表单元素序列化为json对象的方法
- jQuery把表单元素变为json对象
- 【jQuery】form表单元素序列化为json对象
- jQuery把表单元素变为json对象
- Jquery 表单取值赋值 处理返回json数据
- Jquery将表单序列化为Json对象{xx:'xx'} 和{'xx':'xx'}都支持
- 浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
- 将JavaScript的jQuery库中表单转化为JSON对象的方法
- jQuery通过ajax获得后台json数据给form表单赋值
- (转)jquery对表单元素的取值和赋值
- Jquery 将表单序列化为Json对象.同时提交多个表单的参数
- Jquery 将表单序列化为Json对象
- jquery将表单序列化json对象
- Jquery 表单取值赋值 处理返回json数据
- jQuery对表单元素的取值和赋值操作
- jquery 序列化(json对象序列化Url 表单序列化Url )