解析页面表单元素

 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. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建

    日常啰嗦 前面一篇文章讲了一下版本控制,但其实这一篇并没有打算讲细节的,感觉应该自己去动手弄一下,后来考虑了一下,版本控制真的挺重要的,如果自己实在搭建不好反而不去使用的话,真的有点可惜,当然这些话是 ...

  2. jquery写日期选择器

    跟上我的脚步,让我们来领略代码的世界! 使用jquery做一个日期时间选择器,最好使用bootstrap弹窗 实现: (1)点击文本框弹出窗口: (2)弹窗里面显示日期时间选择下拉 (3)年份取当前年 ...

  3. POJ 2182 解题报告

    Lost Cows Time Limit: 1000 MS Memory Limit: 65536 KB Description N (2 <= N <= 8,000) cows have ...

  4. Android中的几种多线程实现

    有以下几种方式: 1)Activity.runOnUiThread(Runnable) 2)View.post(Runnable) ;View.postDelay(Runnable , long) 3 ...

  5. ubuntu如何进入local、bin目录

    回到home目录,输入命令:cd /usr/local 若要进入bin目录,输入命令:cd /usr/local/bin

  6. JS Math.round()方法原理

    请先测试代码: <!doctype html> <html lang="en"> <head> <meta charset="U ...

  7. WebX框架学习笔记之二----框架搭建及请求的发起和处理

    框架搭建 执行环境:windows.maven 执行步骤: 1.新建一个目录,例如:D:\workspace.注意在盘符目录下是无法执行成功的. 2.执行如下命令: mvn archetype:gen ...

  8. CDN内容分发网络

    CDN的全称是Content Delivery Network,即内容分发网络,其设计思想是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. CDN系统是在网络 ...

  9. Java基础—JDK环境变量配置

    1.安装JDK 下载网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 注意点 ...

  10. Poptest学员之当小厨师变成测试开发工程师

    没开玩笑,这是我们的真实案例.做培训以来,各行各业转行做测试的学员见得太多了.修车的.客服的.销售的.司机的.医护的.前台的等等.职位虽然不分贵贱,但是薪资却分多少.每个人心中都有让家人和自己过上好日 ...