用Jquery实现可编辑表格并用AJAX提交到服务器修改数据


Posted in Javascript onDecember 27, 2009

下面是js Code:

$(function() { // 相当于在页面中的body标签加上onload事件 
$(".caname").click(function() { // 给页面中有caname类的标签加上click函数 
var objTD = $(this); 
var oldText = $.trim(objTD.text()); // 保存老的类别名称 
var input = $("<input type='text' value='" + oldText + "' />"); // 文本框的HTML代码 
objTD.html(input); // 当前td的内容变为文本框 
// 设置文本框的点击事件失效 
input.click(function() { 
return false; 
}); 
// 设置文本框的样式 
input.css("border-width", "0px"); //边框为0 
input.height(objTD.height()); //文本框的高度为当前td单元格的高度 
input.width(objTD.width()); // 宽度为当前td单元格的宽度 
input.css("font-size", "14px"); // 文本框的内容文字大小为14px 
input.css("text-align", "center"); // 文本居中 
input.trigger("focus").trigger("select"); // 全选 
// 文本框失去焦点时重新变为文本 
input.blur(function() { 
var newText = $(this).val(); // 修改后的名称 
var input_blur = $(this); 
// 当老的类别名称与修改后的名称不同的时候才进行数据的提交操作 
if (oldText != newText) { 
// 获取该类别名所对应的ID(序号) 
var caid = $.trim(objTD.prev().text()); 
// AJAX异步更改数据库 
var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime(); 
$.get(url, function(data) { 
if (data == "false") { 
$("#test").text("类别修改失败,请检查是否类别名称重复!"); 
input_blur.trigger("focus").trigger("select"); // 文本框全选 
} else { 
$("#test").text(""); 
objTD.html(newText); 
} 
}); 
} else { 
// 前后文本一致,把文本框变成标签 
objTD.html(newText); 
} 
}); 
// 在文本框中按下键盘某键 
input.keydown(function(event) { 
var jianzhi = event.keyCode; 
var input_keydown = $(this); 
switch (jianzhi) { 
case 13: // 按下回车键 ,把修改后的值提交到数据库 
// $("#test").text("您按下的键值是: " + jianzhi); 
var newText = input_keydown.val(); // 修改后的名称 
// 当老的类别名称与修改后的名称不同的时候才进行数据的提交操作 
if (oldText != newText) { 
// 获取该类别名所对应的ID(序号) 
var caid = $.trim(objTD.prev().text()); 
// AJAX异步更改数据库 
var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime(); 
$.get(url, function(data) { 
if (data == "false") { 
$("#test").text("类别修改失败,请检查是否类别名称重复!"); 
input_keydown.trigger("focus").trigger("select"); // 文本框全选 
} else { 
$("#test").text(""); 
objTD.html(newText); 
} 
}); 
} else { 
// 前后文本一致,把文本框变成标签 
objTD.html(newText); 
} 
break; 
case 27: // 按下Esc键, 取消修改,把文本框变成标签 
$("#test").text(""); 
objTD.html(oldText); 
break; 
} 
}); 
}); 
}); // 屏蔽Enter按键 
$(document).keydown(function(event) { 
switch (event.keyCode) { 
case 13: return false; 
} 
});

下面是 一般处理程序代码 ChangeCaName.ashx
<%@ WebHandler Language="C#" Class="ChangeCaName" %> 
using System; 
using System.Web; 
using BLL; 
using Model; 
public class ChangeCaName : IHttpHandler 
{ 
public void ProcessRequest(HttpContext context) 
{ 
context.Response.ContentType = "text/plain"; 
string caid = context.Request.QueryString["caid"]; 
string caname = context.Server.UrlDecode(context.Request.QueryString["caname"]); 
// 判断数据库中是否已经存在同名类别 
if (new CategoryManager().IsExists(caname)) 
{ 
context.Response.Write("false"); 
return; 
} 
// 更改数据库类别名 
Category ca = new Category(caid, caname); 
bool b = new CategoryManager().Update(ca); 
if (b) 
{ 
context.Response.Write("true"); 
} 
else 
{ 
context.Response.Write("false"); 
} 
} 
public bool IsReusable 
{ 
get 
{ 
return false; 
} 
} 
}
Javascript 相关文章推荐
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
window.onload追加函数使用示例
Mar 03 Javascript
JS回调函数的应用简单实例
Sep 17 Javascript
JavaScript 字符串常用操作小结(非常实用)
Nov 30 Javascript
javascript history对象详解
Feb 09 Javascript
自定义PC微信扫码登录样式写法
Dec 12 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
如何检查一个对象是否为空
Apr 11 Javascript
vue实现抖音时间转盘
Sep 08 Javascript
如何利用javascript接收json信息并进行处理
Aug 06 Javascript
jQuery中的常用事件总结
Dec 27 #Javascript
jQuery 动态酷效果实现总结
Dec 27 #Javascript
javascript 清空form表单中某种元素的值
Dec 26 #Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
Dec 26 #Javascript
十分钟打造AutoComplete自动完成效果代码
Dec 26 #Javascript
jQuery 常见开发使用技巧总结
Dec 26 #Javascript
javascript 最常用的10个自定义函数[推荐]
Dec 26 #Javascript
You might like
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
python中的函数用法入门教程
2014/09/02 Python
Django 使用logging打印日志的实例
2018/04/28 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
Django中的forms组件实例详解
2018/11/08 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
python实现大文本文件分割
2019/07/22 Python
python调用接口的4种方式代码实例
2019/11/19 Python
python分布式计算dispy的使用详解
2019/12/22 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
Python dict的常用方法示例代码
2020/06/23 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
会计专业求职信范文
2015/03/19 职场文书
小学少先队活动总结
2015/05/08 职场文书
大学生十八大感想
2015/08/11 职场文书
入党心得体会
2019/06/20 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏