解析页面表单元素

 parseForm: function () {
var data = {};
$(this).find('input').each(function () {
switch ($(this).attr('type')) {
case 'radio':
case 'checkbox':
if ($(this).prop('checked')) {
data[$(this).attr('name')] = $(this).val();
}
break;
default:
data[$(this).attr('name')] = $(this).val();
} });
$(this).find('select').each(function () {
data[$(this).attr('name')] = $(this).val();
});
$(this).find('textarea').each(function () {
data[$(this).attr('name')] = $(this).val();
});
return data;
}
}); json数据渲染表单元素
 loadForm: function (jsonstr) {
try {
var jsondata = jsonstr == '' ? '' : $.parseJSON(jsonstr);
} catch (e) {
throw new Error('非法的json字符串~');
}
var self = this;
var form = {
input: function (name, val) {
$(self).find('input[name="' + name + '"]').val(val);
},
checkbox: function (name, val) {
$(self)
.find('input[name="' + name + '"][type="checkbox"][value="' + val + '"]')
.attr('checked', 'checked');
},
radio: function (name, val) {
$(self)
.find('input[name="' + name + '"][type="radio"][value="' + val + '"]')
.attr('checked', 'checked');
},
textarea: function (name, val) {
$(self).find('textarea[name="' + name + '"]').val(val);
},
select: function (name, val, data) {
var obj = $(self).find('select[name="' + name + '"]');
if ($.isEmptyObject(obj)) {
return false;
}
if (typeof data == 'string') {
obj.append(decodeURIComponent(data.replace(/\+/g, '%20')));
} var selected = obj.find('option[value="' + val + '"]');
if ($.isEmptyObject(selected)) {
obj.find('option:eq(0)').attr('selected', 'selected');
} else {
selected.attr('selected', 'selected');
}
}
};
if (typeof jsondata == 'object') {
for (var key in jsondata) {
var d = jsondata[key];
if (typeof d != 'object' || d.length <= 0) {
continue;
}
if (typeof d.name == 'undefined') {
continue;
}
switch (d.type) {
case 'select':
form.select(d.name, d.value, d.data);
break;
case 'radio':
form.radio(d.name, d.value);
break;
case 'checkbox':
form.checkbox(d.name, d.value);
break;
case 'textarea':
form.textarea(d.name, d.value);
break;
default :
form.input(d.name, d.value);
}
}
}
},
php代码
$formObj = new Form();
$select_arr = ['zulinqixian', 'chanzhengxingzhi', 'pingmiantu', 'gongrefangshi', 'xiaofangpiwen', 'zhengzhaobanli', 'shifouhanpiao', 'dizeng', 'dizengzhi', 'ya', 'fu',
'mianzuqi', 'kongtiaoleixing', 'liangyiqu', 'xiyiqu', 'tingchechangdi', 'dianti',];
foreach (json_decode($ProjectObj->getContent(), true) as $k => $v) {
if ($k == 'yuanxiaofangsheshi-1') {
$formObj->addCheckboxInput('yuanxiaofangsheshi-1', $v);
} else if ($k == 'yuanxiaofangsheshi-2') {
$formObj->addCheckboxInput('yuanxiaofangsheshi-2', $v);
} else {
if(in_array($k,$select_arr)){
$formObj->addSelect($k, $v, []);
}
}
}
   

json数据渲染表单元素出现的问题的更多相关文章

  1. 在JS中将指定表单内的“具有name数据的表单元素的值”封装为Get形式的字符串

    //封装post时候,表单中所有具有name数据的表单元素的值,并返回“n=1&p=a” function serialize(formid) { var arr = []; var ipts ...

  2. ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

    一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2 ...

  3. 构造AJAX参数, 表单元素JSON相互转换

    ajax提交服务器数据, 整理一下转换方法. HTML: <form id="fm" name="fm" action=""> ...

  4. Flask--(一对多)模型渲染表单数据

    模型建立一一对多模型: 多表添加外键,建立两张表之间的关系 一表关联多表的属性,可以方便快速访问多表的数据 模板一层循环渲染一表数据,二层循环渲染多表的数据 代码展示: from flask impo ...

  5. 【jQuery】form表单元素序列化为json对象

    序列化form表单元素为json对象: <!Doctype html> <html xmlns=http://www.w3.org/1999/xhtml> <head&g ...

  6. 使用CSS来渲染HTML的表单元素

    效果: 实现: <!DOCTYPE html> <html> <head> <title>使用CSS来渲染HTML的表单元素</title> ...

  7. 第二章 Vue快速入门--13 讲解v-model实现表单元素的数据双向绑定

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  8. VUE 表单元素双向绑定总结

    checkbox最基本用法: <input type="checkbox" v-model="inputdata" checked/> <in ...

  9. 动态增加表单元素并获取元素的text和value提交

    以上是效果图 需求是这样的: 专家设置好条件,然后设备检测到达到相应的条件之后,设备发出提醒给用户. 这就需要专家设置好能看懂的条件之后,然后把给专家看的,正常人能看懂的条件和发送的设备的,设备能够识 ...

随机推荐

  1. 1782: [Usaco2010 Feb]slowdown 慢慢游

    1782: [Usaco2010 Feb]slowdown 慢慢游 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 570  Solved: 346[Sub ...

  2. java配置文件的读写

    最近在做一个爬虫项目时,用到了读写配置文件的方法,记录下来以后可能用的到. Properties pro = new Properties(); boolean IsFirst = true; //从 ...

  3. multiSelect 下拉多选插件

    multiSelect是一款很好用的下拉多选插件,可以在下拉框中实现多选框,全选及取消全选等方法.使用方法:1.引用 multiSelect.css及 multiSelect.js.下载地址 http ...

  4. MySQL+SSM+Ajax上传图片问题

    第一次写上传图片的代码,碰到很多问题.昨天做了整整一天,终于在晚上的时候成功了.大声欢呼. 但是,做完之后,还是有很多问题想不通.所以在这里也算是写个笔记,日后忘记了可以回顾,也算请教各路朋友.(^_ ...

  5. C++ Primer 5 CH2 变量和基本类型

    C++ 是一种静态数据类型语言,它的类型检查发生在编译时.因此,编译器需要知道每一个变量对应的数据类型. 2.1 基本内置类型 算术类型 C++ 标准并没有规定带符号类型应如何表示,但是约定了在表示范 ...

  6. mysql编程--创建函数出错的解决方案

    本文章转载自:http://www.jb51.net/article/71100.htm 在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题 ...

  7. struts2(二) 表单参数自动封装和参数类型自动转换

    前篇文章对struts2的一个入门,重点是对struts2的架构图有一个大概的了解即可,之后的几篇文章,就是细化struts2,将struts2中的各种功能进行梳理,其实学完之后,对struts2的使 ...

  8. Java基础--定时任务Timer(转载)

    Java基础--定时任务Timer 一.Timer介绍 java.util.Timer java.util.TimerTask Timer是一个定时器类,通过该类可以为指定的定时任务进行配置.Time ...

  9. ie旋转滤镜Matrix

    旋转一个元素算是一个比较常见的需求了吧,在支持CSS3的浏览器中可以使用transform很容易地实现,这里有介绍:http://www.css88.com/archives/2168,这里有演示ht ...

  10. waypoints

    http://imakewebthings.com/waypoints waypoints 滑冰122分钟 Cygwin http:/nxutils.sourceforge.net http://ba ...