用jquery 做了个无刷新增,删,改,查的小例子,没用与数据库关联。部分功能不是太完善。存在几个问题
1。在增加的时候,save()方法里面最后二行整体替换TD值的时候报:未知的运行时错误。
2。对于一条记录,修改,删除只能执行一次,第二次就没效果了。
3.批量增加,修改还没有实现。
对于以上问题请行家指点一下。
HTML代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
<script src="lib/jquery.js" type="text/javascript"></script>
<script src="custom.js" type="text/javascript"></script>
</head>
<body>
<form name="form1">
<button name="1" id="btn1">add</button>
<button name="2" id="btn2" onclick="update()">update</button>
<button name="3" id="btn3" onclick="del(this.form)">delete</button>
<table id="large" cellspacing="0">
<thead>
<tr>
<th><input type="checkbox" name="cbv" id="cbv" onclick="sel('cbv','ch')"/></th>
<th>Email</th>
<th>Id</th>
<th>Phone</th>
</tr>
</thead>
<tbody id="tbody">
<tr id="tr1">
<td><input type="checkbox" name="ch" id="ch" value="tr1"/></td>
<td>123@com</td>
<td>0</td>
<td>44444444</td>
</tr>
<tr id="tr2">
<td><input type="checkbox" name="ch" id="ch" value="tr2"/></td>
<td>456@com</td>
<td>1</td>
<td>55555555</td>
</tr>
<tr id="tr3">
<td><input type="checkbox" name="ch" id="ch" value="tr3"/></td>
<td>567@com</td>
<td>2</td>
<td>666666666</td>
</tr>
</tbody>
</table>
</form>
</div>
</body>
</html>
JQUERY 代码
$(document).ready(function() {
//add
$('#btn1').click(function () {
var html='<tr>';
html += '<td><input type="checkbox" id="cbv" name="ch" class="writable"/></td>';
html += '<td><input type="text" id="email" name="email" class="writable"/></td>';
html += '<td><input type="text" id="id" name="id" class="writable"/></td>';
html += '<td><input type="text" id="phone" name="phone" class="writable"/> <a href ="#" onclick="save()">save</a> <a href ="#" onclick="cancle()">cancle</a></td>';
html += '</tr>';
$('#tbody').append(html);
}
);
});
//save
function save() {
$("input[type=text]").each(function(){
$(this).addClass("writable");
});
var objAttrVals = $("#tbody").find("tr > td").find(".writable");
var obj = {};
for(var i=0;i<objAttrVals.length;i++){
var attrVal = $(objAttrVals[i]).val();
$(obj).attr(objAttrVals[i].id,attrVal);
}
var htmls = '<tr><td><input type="checkbox" id="ch" name="ch"/>';
htmls += '</td>';
htmls += '<td>';
htmls += obj.email;
htmls += '</td>';
htmls += '<td>';
htmls += obj.id;
htmls += '</td>';
htmls += '<td>';
htmls += obj.phone;
htmls += '</td></tr>';
var tr = objAttrVals.parent().parent();
tr.remove();
$('#tbody').append(htmls);
//tr.html(htmls);
//$(tr).html(htmls);
}
//cancle
function cancle(){
var objAttrVals = $("#tbody").find("tr > td").find(".writable");
var tr = objAttrVals.parent().parent();
tr.remove();
}
//update 目前只能修改一条数据,只能选择一条修改一条
function update() {
var tr = '';
var idList = ['ch','email','id','phone'];
tr = $('input:checked').parent().parent();
var obj = {};
var chval = $('input:checked').val();
for (var i=0;i<$(tr).find("td").length;i++) {
var str = $($(tr).find("td")[i]).text();
$(obj).attr(idList[i],str);
}
$(obj).attr("ch",chval);
var str = chval + '-' + obj.email + '-' + obj.id + '-' + obj.phone;
var html='<tr id="'+obj.ch+'">';
html += '<td><input type="checkbox" id="ch" name="ch" class="writable" value="'+obj.ch+'"/></td>';
html += '<td><input type="text" id="email" name="email" class="writable" value="'+obj.email+'"/></td>';
html += '<td><input type="text" id="id" name="id" class="writable" value="'+obj.id+'"/></td>';
html += '<td><input type="text" id="phone" name="phone" class="writable" value="'+obj.phone+'"/>';
html += '<a href ="#" onclick="modsave()">save</a><a href ="#" onclick="modcancle(\'';
html += str;
html += '\')">cancel</a></td>';
html += '</tr>';
$('#'+obj.ch).after(html);
$('#'+obj.ch).remove();
}
//update save
function modsave() {
$("input[type=text]").each(function(){
$(this).addClass("writable");
});
var objAttrVals = $("#tbody").find("tr > td").find(".writable");
var obj = {};
for(var i=0;i<objAttrVals.length;i++){
var attrVal = $(objAttrVals[i]).val();
$(obj).attr(objAttrVals[i].id,attrVal);
}
var htmls = '<tr><td><input type="checkbox" id="ch" name="ch" value="'+obj.ch+'"/>';
htmls += '</td>';
htmls += '<td>';
htmls += obj.email;
htmls += '</td>';
htmls += '<td>';
htmls += obj.id;
htmls += '</td>';
htmls += '<td>';
htmls += obj.phone;
htmls += '</td></tr>';
var tr = objAttrVals.parent().parent();
$('#'+obj.ch).after(htmls);
$('#'+obj.ch).remove();
}
//update cancle
function modcancle(ch) {
var array = ch.split('-');
var objAttrVals = $("#tbody").find("tr > td").find(".writable");
var htmls = '<tr><td><input type="checkbox" id="ch" name="ch" value="'+array[0]+'"/>';
htmls += '</td>';
htmls += '<td>';
htmls += array[1];
htmls += '</td>';
htmls += '<td>';
htmls += array[2];
htmls += '</td>';
htmls += '<td>';
htmls += array[3];
htmls += '</td></tr>';
var tr = objAttrVals.parent().parent();
$('#'+array[0]).before(htmls);
$('#'+array[0]).remove();
}
//delete 目前只能删除已经存在的前三条数据,对于CHECKBOX VALUE应该是从后台自动生成的唯一标识
function del(form) {
var a = new Array();
for (var i=0;i<form.elements.length;i++) {
var e = form.elements[i];
if (e.checked==true && e.type=='checkbox' && e.name) {
a.push(e.value);
}
}
if (a.length==0) {
alert('没有选择!');
return false;
} else {
for (i in a) {
$('#'+a[i]).remove();
}
}
}
//select
function sel(chkallid, chkoneid){
var checkBoxArr = document.getElementsByName(chkoneid);
var selall = document.getElementById(chkallid);
for(var i=0;i<checkBoxArr.length;i++){
checkBoxArr[i].checked = selall.checked;
}
}
相关推荐
"经典jquery局部刷新增删改查"这个主题聚焦于利用jQuery实现数据的动态更新,即“增删改查”功能,并且只涉及到页面的特定部分,而不是整个页面的刷新。 1. **jQuery基本概念**:jQuery是一个轻量级的库,通过链式...
解压后,我们可以看到具体的HTML、CSS、JavaScript(可能包括jQuery和Ajax实现)、Java类(可能涉及到Struts2和Hibernate的配置和实体类)以及数据库配置文件等,这些都是实现无刷新增删改查和分页功能的组成部分。...
本人根据JAVA版本的无刷新增删改查做的C#版AJAX增删改查,纯用xmlHttpRequest+JS实现,没有用任何JS框架,并且做到了在GridView行内无刷新编辑。另外资源中也集了一个别人用JQuery+Json写的无刷新增删改查,仅供参考...
本示例“jquery实现的无刷新分页增删改”正是将jQuery的强大功能应用于数据管理,提供了一种高效且用户体验良好的解决方案。 首先,我们来理解“无刷新分页”。传统的网页分页通常需要用户点击分页按钮后,页面重新...
**标题解析:** "mvc4+knockout无刷新增删改查" 指的是使用ASP.NET MVC 4框架结合Knockout.js库来实现Web应用中的数据操作功能,包括添加、删除、修改和查询,而且这些操作都是在不刷新整个页面的情况下完成的,即...
为了实现无刷新增删改节点,dtree菜单终极版可能采用了以下关键技术: 1. **JavaScript/jQuery**:用于捕捉用户交互事件,如点击、拖拽等,并触发相应的函数执行操作。 2. **AJAX**:在后台与服务器通信,实现数据...
标题中的“SSHA无刷新增删改查”指的是利用Struts2、Hibernate、Spring和Ajax这四个核心技术进行的Web应用开发,旨在实现数据操作(增、删、改、查)时无需页面整体刷新,从而提升用户交互体验。下面将详细介绍这四...
标题"jquery写的增删改"指的是使用 jQuery 实现的数据表或列表的动态操作,即添加(Add)、删除(Delete)和修改(Modify)功能。这些功能在网页应用中十分常见,特别是在处理用户交互和数据管理时。 jQuery 提供了...
本文将深入探讨如何在C#中利用GridView控件新增一行数据,并通过jQuery实现对数据的增删改查操作。 首先,让我们详细了解GridView控件。GridView是一个服务器控件,它能够以表格形式展示数据,如数据库中的记录。它...
无刷新在线查单词功能是现代Web应用中常见的一种技术,它通过Ajax技术实现了页面内容的动态更新,无需用户手动刷新整个页面。在这个基于jQuery实现的例子中,我们可以深入学习如何利用jQuery的强大功能来优化用户...
运用jQuery实现Ajax无刷新在线查词工具,在线查单词,输入关键词后,无刷新显示查询结果,通过异步获取XML数据并进行分析处理,然后通过DOM操作写入页面文件,无页面刷新。。如果你对Ajax功能感兴趣,本源码可作为一...
本实例"jquery实现的左右选择的例子"是利用jQuery创建的一个功能组件,它提供了用户友好的界面,允许用户在左右两个面板之间选择和移动条目,适用于多种场景,如数据筛选、选项选择等。 这个组件的核心知识点包括:...
前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+...
DataTable+Jquery+Bootstrap实现表格增删改查 使用DataTable+Jquery+Bootstrap实现表格增删改查
谁在jquery easyUI 下做过动态生成多条件查询...大体就这样,点击“添加条件”,生成上面描述的一行,这个在jquery easyUI 框架下如何实现,再者,假如post表单提交,服务器脚本如何获取和组装前台提交过来的多个条件。
jQuery实现增删改
下面是一个使用JQuery EasyUI实现增删改查的基本步骤: 1. **数据绑定**:首先,你需要将从服务器获取的JSON数据绑定到`datagrid`中。这可以通过设置`url`属性来实现,EasyUI会自动发送Ajax请求获取数据。 ```...
Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子)
在这个"JQuery实现的GridView行拖拽例子"中,我们将深入探讨如何利用jQuery来实现GridView控件中行的拖放功能,这是一种增强用户交互性和界面动态性的常见方法。 首先,GridView是ASP.NET中用于显示数据的一种Web...
关于增删改查功能的实现,这通常涉及到后端数据的交互。在用户界面上,可以通过添加按钮、删除按钮、编辑按钮和搜索框来实现这些操作。例如,添加新节点时,可以创建一个新的数据对象,然后调用特定的API将其添加到...