用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从头学起第一讲
Jul 04 Javascript
jQuery 名称冲突的解决方法
Apr 08 Javascript
一些老手都不一定知道的JavaScript技巧
May 06 Javascript
php+js实现倒计时功能
Jun 02 Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 Javascript
java中String类型变量的赋值问题介绍
Mar 23 Javascript
jquery mobile实现可折叠的导航按钮
Mar 11 Javascript
详解基于webpack搭建react运行环境
Jun 01 Javascript
详解使用vue实现tab 切换操作
Jul 03 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
Vue.js中 v-model 指令的修饰符详解
Dec 03 Javascript
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
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
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
php显示时间常用方法小结
2015/06/05 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
Python二分法搜索算法实例分析
2015/05/11 Python
Python有序字典简单实现方法示例
2017/09/28 Python
对pandas中Series的map函数详解
2018/07/25 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
物理教师自荐信范文
2013/12/28 职场文书
迟到检讨书1000字
2014/01/15 职场文书
超市重阳节活动方案
2014/02/10 职场文书
给老师的一封建议书
2014/03/13 职场文书
留学推荐信范文
2014/05/10 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
人事代理委托书
2014/09/27 职场文书
人事局接收函
2015/01/30 职场文书
葬礼主持词
2015/07/02 职场文书
会计专业自荐信范文
2019/05/22 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android