JQuery结合Ajax实现双击Table表格,使Table变成可编辑,并保存到数据库中

近期在做项目时,要实现通过双击Table表格的TR,使Table行变成可编辑,来实现修改数据并保存到数据库中的功能,无需多说,直接贴代码吧。希望能得到各位同仁指正。

  1 function tdEdit(element, id) {
  2     var i_a = "<input class=‘edit_td‘ type=‘text‘ style=‘height:30px; width:40px;‘ value=‘";
  3     var i_b = "‘/>";
  4     var t_a = "<textarea class=‘tarea‘ cols=‘63‘ rows=‘3‘ style=‘width:90%‘>";
  5     var t_b = "</textarea>";
  6     var td = $(element).find("td");
  7     if (td.length > 0) {
  8         var sc = $(element).children().eq(1).text();
  9         var ss = $(element).children().eq(2).text();
 10         var sequence = $(element).children().eq(3).text();
 11         var weight = $(element).children().eq(4).text();
 12         var max = $(element).children().eq(5).text();
 13         var min = $(element).children().eq(6).text();
 14         var cv = $(element).children().eq(7).text();
 15         var explain = $(element).children().eq(8).text();
 16
 17         $(element).children().eq(1).html($(t_a + sc + t_b));
 18         $(element).children().eq(2).html($(t_a + ss + t_b));
 19         $(element).children().eq(3).html($(i_a + sequence + "‘id=‘num1" + i_b));
 20         $(element).children().eq(4).html($(i_a + weight + "‘id=‘num2" + i_b));
 21         $(element).children().eq(5).html($(i_a + max + "‘id=‘maxvalue" + i_b));
 22         $(element).children().eq(6).html($(i_a + min + "‘id=‘minvalue" + i_b));
 23         $(element).children().eq(7).html($(t_a + cv + t_b));
 24         $(element).children().eq(8).html($(t_a + explain + t_b));
 25     }
 26     $(".edit_td").click(function () {
 27         return false;
 28     });
 29     $(".tarea").click(function () {
 30         return false;
 31     });
 32     //获取焦点
 33     $(".edit_td").trigger("focus");
 34     $(".tarea").trigger("focus");
 35
 36     //文本框失去焦点后提交内容,重新变为文本
 37     $(".save").click(function () {
 38         //验证信息"n":/^\d+$/
 39         var reg = /^[0-9]+\.{0,1}[0-9]{0,2}$/;
 40         var num1 = $("#num1").val();
 41         var num2 = $("#num2").val();
 42         var max = $("#maxvalue").val();
 43         var min = $("#minvalue").val();
 44         if (parseInt(min) > parseInt(max)) {
 45             alert("最小值不能大于最大值!");
 46             return false;
 47         }
 48         if (!reg.test(num1) || !reg.test(num2) || !reg.test(max) || !reg.test(min)) {
 49             alert("请输入数字!");
 50             return false;
 51         }
 52         //重新赋上新值
 53         $(".edit_td").each(function (i) {
 54             var newtxt = $(this).val();
 55             $(element).children().eq(i + 3).html(newtxt);
 56         });
 57         $(".tarea").each(function (j) {
 58             var newtarea = $(this).val();
 59             if (j < 2) {
 60                 $(element).children().eq(j + 1).html(newtarea);
 61             }
 62             else {
 63                 $(element).children().eq(j + 5).html(newtarea);
 64             }
 65         });
 66
 67         var new_sc = $(element).children().eq(1).text();
 68         var new_ss = $(element).children().eq(2).text();
 69         var new_sequence = $(element).children().eq(3).text();
 70         var new_weight = $(element).children().eq(4).text();
 71         var new_max = $(element).children().eq(5).text();
 72         var new_min = $(element).children().eq(6).text();
 73         var new_cv = $(element).children().eq(7).text();
 74         var new_explain = $(element).children().eq(8).text();
 75         if (new_sc != sc || new_ss != ss || new_sequence != sequence || new_weight != weight || new_max != max || new_min != min || new_cv != cv || new_explain != explain) {
 76             $.ajax({
 77                 type: ‘POST‘,
 78                 contentType: ‘application/json‘,
 79                 url: ‘/Ajax/AjaxAction.ashx/UpdateRuleDetail‘,
 80                 data: ‘{id:"‘ + id + ‘",strCon:"‘ + new_sc + ‘",strStandard:"‘ + new_ss + ‘",Sequence:"‘ + new_sequence + ‘",Weight:"‘ + new_weight + ‘",CandidateValue:"‘
 81                     + new_cv + ‘",MaxValue:"‘ + new_max + ‘",MinValue:"‘ + new_min + ‘",Explain:"‘ + new_explain + ‘"}‘,
 82                 dataType: ‘json‘,
 83                 async: true,
 84                 beforeSend: function () {
 85                 },
 86                 success: function (data) {
 87                     alert("保存成功!");
 88                     window.location.reload();   //刷新页面
 89                 },
 90                 error: function (XMLHttpRequest, textStatus, errorThrown) {
 91                     alert(XMLHttpRequest + ‘:‘ + textStatus);
 92                     window.location.reload();
 93                 }
 94             });
 95         }
 96         else {
 97             alert("温馨提示:您没有做任何修改!");
 98             window.location.reload();
 99         }
100
101     });
102 }

JS

  前台页面绑定: 

1 <tr ondblclick="tdEdit(this,@item.ID)"></tr>

Html

最终效果图:

JQuery结合Ajax实现双击Table表格,使Table变成可编辑,并保存到数据库中

时间: 2024-10-25 10:13:04

JQuery结合Ajax实现双击Table表格,使Table变成可编辑,并保存到数据库中的相关文章

前端 导出为Excel 数据源为table表格 并且table中含有图片

图片导出到Excel,图片的路径得调整一下, 把 <img src="1.jpg" id="img1" /> 改为: <img src="http://localhost:2079/%E6%B5%8B%E8%AF%951/1.jpg" /> 这样Excel导出的时候就能包含图片了,但不是完美的解决方案. 导出注意事项: 图片并不是实实在在存入Excel中的,应该仅仅只是存的图片路径 图片的src地址必须是完整的,需要包含h

在jquery的ajax中添加自定义的header信息

转自网络 1 $.ajax({ 2 type: "POST", 3 url: "http://192.168.0.88/action.cgi?ActionID=WEB_RequestCertificateAPI", 4 data: { 5 "user": "api", 6 "password": "api" 7 }, 8 dataType: "json", 9 Con

jQuery ajax 动态append创建表格出现不兼容ie8

很多情况下,通过js(jQuery1.10)动态来创建一些样式,对页面的动态交互来说是很方便的 但是不同的浏览器针对动态生成的不是很兼容,在此遇见的不兼容ie8,跟各位分享下 代码: json数据 data.json [{"name":"ajax","job":"manong"},{"name":"js","job":"diaosi"}] html

jquery实现的统计table表格指定列的单元格值的和

jquery实现的统计t]able表格指定列的单元格值的和:在一些应用中,表格单元格中存放的都是数字,比如学生的分数,那么就有可能将这些分数做加法运算来统计出总分数,下面就通过代码实例介绍一下如何统计某一列单元格中值的和.代码实例: <!DOCTYPE html><html> <head> <meta charset=" utf-8"> <meta name="author" content="http

jQuery实现的table表格隔行换色代码实例

jQuery实现的table表格隔行换色代码实例:下面是一段代码实例,能够实现隔行变色的效果,这是网站人性化措施之一,在实际应用中的使用非常广泛.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <t

jQuery操作表格,table tr td,单元格

jQuery操作表格,table tr td,单元格 乔乐共享jQuerytable单元格表格 最终效果图:  .td_back_color { background-color: red; } .td_center { text-align: center; font-weight:bold; } <table id="tbl_count"> <caption>2013春节聚会收支统计</caption> <tr> <th>

初识jQuery的ajax

前面有一篇博文,写的是ajax请求时,返回json字符串和json数组的场景,今天,将原始的ajax修改为jQuery版的ajax. jQuery对ajax做了很多的封装,使得ajax使用起来非常的方便,省去了很多代码. 闲话少说,直接看代码吧. 代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!

基于jquery的ajax分页插件(demo+源码)

前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客园学习了很多的知识,看过很多人的分享.说来也惭愧,自己没能为园友们分享自己的所学所得(毕竟水平比较差). 过去的一年也是辗转了几个城市换了几份工作(注定本命年不太平?).八月份来到现在所在的公司(OTA行业),公司是做互联网的,所以可能大家的前端都屌屌的?之前一直从事.NET开发(现在在这边也是),

前端技术Jquery与Ajax使用总结

前端技术Jquery与Ajax使用总结 虽然主要是做的后端,但是由于有些时候也要写写前台的界面,因此也就学习了下Jquery和Ajax的一些知识,虽说此次写的这些对于前端大神来说有些班门弄斧的感觉,但是为了加深自己的记忆,还是总结一下下,有什么不对的地方欢迎大家指出~ 准备工作 由于我是使用的bootstrap,所以有些操作也是基于它来进行的,比如说模态框什么的,有关bootstrap的相关知识可以到这里去学习.然后这个项目用的是Struts框架.好了,基本情况就是酱紫了. 将jquery的包以