jQuery实现可编辑表格并生成json结果(实例代码)


Posted in jQuery onJuly 19, 2017

实现效果如下,在编辑表格的同时可以实现字段json内容的自动变化,点击提交可以保存到后台,页面加载的时候自动解析json并加载表格内容。该代码解析和加载功能都用前端js实现,简化了后台代码逻辑。

jQuery实现可编辑表格并生成json结果(实例代码)

定义要操作的表格头:

<input readonly="readonly" class="form-control" type="text" id="scorerange" value="" name="scorerange"/> 
                      <table id="mytable"> 
                          <tr> 
                            <th style="width: 20%;">分数区间</th><th style="width:20%;">等级</th><th style="width:60%;">建议内容</th><th></th> 
                       </tr> 
                         <!--                         <tr><td><input onblur="caljson()" type="text" style="width: 50px;" >-<input type="text" style="width: 50px;" /></td> 
                          <td><input onblur="caljson()" type="text" style="width: 100%;" ></td> 
                          <td><input onblur="caljson()" id="btn1" type="button" onclick="$(this).parent().parent().remove()" value="删除" /></td></tr>                        -->                       </table>

定义操作代码

function insertRowLast(newrow,s1,s2,s3,s4) { 
  if(newrow){ 
    var newRow = "<tr><td><input onblur=\"caljson()\" value=\"0\" type=\"text\" style=\"width: 50px;\" >-<input value=\"0\" type=\"text\" style=\"width: 50px;\" /></td>"; 
    newRow+="<td><input  onblur=\"caljson()\"  type=\"text\" style=\"width: 50px;\" ></td>"; 
    newRow+="<td><input maxlength=\"24\" onblur=\"caljson()\"  type=\"text\" style=\"width: 100%;\" ></td>"; 
    newRow+="<td><input  onblur=\"caljson()\"  id=\"btn1\" type=\"button\" onclick=\"$(this).parent().parent().remove();caljson();\" value=\"删除\" /></td></tr>"; 
    $("#mytable tr:last").after(newRow); 
  }else{ 
    var newRow = "<tr><td><input value=\""+s1+"\" onblur=\"caljson()\" type=\"text\" style=\"width: 50px;\" >-<input value=\""+s2+"\" type=\"text\" style=\"width: 50px;\" /></td>"; 
    newRow+="<td><input value=\""+s4+"\"  onblur=\"caljson()\"  type=\"text\" style=\"width: 50px;\" ></td>"; 
    newRow+="<td><input maxlength=\"24\" value=\""+s3+"\"  onblur=\"caljson()\"  type=\"text\" style=\"width: 100%;\" ></td>"; 
    newRow+="<td><input  onblur=\"caljson()\"  id=\"btn1\" type=\"button\" onclick=\"$(this).parent().parent().remove();caljson();\" value=\"删除\" /></td></tr>"; 
    $("#mytable tr:last").after(newRow); 
  } 
  caljson(); 
} 
var json=""; 
function caljson(){ 
 json="{\"scorerange\":["; 
 var idx = 0;  
 var idxlen = $("#mytable").find("tr").length; 
 $("#mytable").find("tr").each(function () { 
  if(idx==0){ 
  idx++; 
    return; 
  } 
var tdArr = $(this).children(); 
  var v1 = tdArr.eq(0).find('input').eq(0).val(); 
  var v2 = tdArr.eq(0).find('input').eq(1).val(); 
  var v3 = tdArr.eq(2).find('input').val(); 
  var v4 = tdArr.eq(1).find('input').val(); 
  json+="{\"s1\":\""+v1+"\",\"s2\":\""+v2+"\",\"content\":\""+v3+"\",\"classg\":\""+v4+"\"}"; 
  idx++; 
  if(idx!=idxlen){ 
  json+=","; 
  } 
}); 
json+="]}"; 
$("#scorerange").val(json); 
//alert($("#scorerange").val()); 
} 
//alert(1); 
//alert($("#scorerange").val()); 
var dataObj=eval("($!{tbscence.scorerange})"); 
if(dataObj && dataObj.scorerange){ 
 //alert(dataObj.scorerange.length); 
 for(var i=0;i<dataObj.scorerange.length;i++){ 
  var s1 = dataObj.scorerange[i].s1; 
  var s2 = dataObj.scorerange[i].s2; 
  var s3 = dataObj.scorerange[i].content; 
  var s4 = dataObj.scorerange[i].classg; 
  //alert(s1+" "+s2+" "+s3); 
  insertRowLast(false,s1,s2,s3,s4); 
 } 
}else{ 
 insertRowLast(true,0,0,0,0); 
}

总结

以上所述是小编给大家介绍的jQuery实现可编辑表格并生成json结果(实例代码),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
JQuery选中select组件被选中的值方法
Mar 08 jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
Apr 01 jQuery
Jquery Fade用法详解
Nov 06 jQuery
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 #jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 #jQuery
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 #jQuery
jquery版轮播图效果和extend扩展
Jul 18 #jQuery
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 #jQuery
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 #jQuery
jQuery remove()过滤被删除的元素(推荐)
Jul 18 #jQuery
You might like
PHP中$_SERVER的详细参数与说明
2008/07/29 PHP
php执行sql语句的写法
2009/03/10 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
js对象基础实例分析
2015/01/13 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
原生js实现购物车
2020/09/23 Javascript
python的id()函数介绍
2013/02/10 Python
python实现从web抓取文档的方法
2014/09/26 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
学雷锋的心得体会
2014/09/04 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
高三复习计划
2015/01/19 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
Python进度条的使用
2021/05/17 Python