0 0

关于jquery 实现无刷新增删改查的例子。15

用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>&nbsp;&nbsp;
<button name="2" id="btn2" onclick="update()">update</button>&nbsp;&nbsp;
<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>&nbsp;&nbsp;<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;
}

}
2009年5月29日 21:45

1个答案 按时间排序 按投票排序

0 0

我的blog里应该有份 你需要的东西 你可以看下!希望对你有帮助!

2009年5月30日 13:36

相关推荐

    经典jquery局部刷新增删改查

    "经典jquery局部刷新增删改查"这个主题聚焦于利用jQuery实现数据的动态更新,即“增删改查”功能,并且只涉及到页面的特定部分,而不是整个页面的刷新。 1. **jQuery基本概念**:jQuery是一个轻量级的库,通过链式...

    无刷新增删改查 分页 ,很强悍的,不要错过哦

    解压后,我们可以看到具体的HTML、CSS、JavaScript(可能包括jQuery和Ajax实现)、Java类(可能涉及到Struts2和Hibernate的配置和实体类)以及数据库配置文件等,这些都是实现无刷新增删改查和分页功能的组成部分。...

    GridView行内编辑无刷新增删改查

    本人根据JAVA版本的无刷新增删改查做的C#版AJAX增删改查,纯用xmlHttpRequest+JS实现,没有用任何JS框架,并且做到了在GridView行内无刷新编辑。另外资源中也集了一个别人用JQuery+Json写的无刷新增删改查,仅供参考...

    jquery实现的无刷新分页增删改

    本示例“jquery实现的无刷新分页增删改”正是将jQuery的强大功能应用于数据管理,提供了一种高效且用户体验良好的解决方案。 首先,我们来理解“无刷新分页”。传统的网页分页通常需要用户点击分页按钮后,页面重新...

    mvc4+knockout无刷新增删改查

    **标题解析:** "mvc4+knockout无刷新增删改查" 指的是使用ASP.NET MVC 4框架结合Knockout.js库来实现Web应用中的数据操作功能,包括添加、删除、修改和查询,而且这些操作都是在不刷新整个页面的情况下完成的,即...

    dtree菜单终极版,支持无刷新增删改节点

    为了实现无刷新增删改节点,dtree菜单终极版可能采用了以下关键技术: 1. **JavaScript/jQuery**:用于捕捉用户交互事件,如点击、拖拽等,并触发相应的函数执行操作。 2. **AJAX**:在后台与服务器通信,实现数据...

    SSHA无刷新 增删改

    标题中的“SSHA无刷新增删改查”指的是利用Struts2、Hibernate、Spring和Ajax这四个核心技术进行的Web应用开发,旨在实现数据操作(增、删、改、查)时无需页面整体刷新,从而提升用户交互体验。下面将详细介绍这四...

    jquery写的增删改

    标题"jquery写的增删改"指的是使用 jQuery 实现的数据表或列表的动态操作,即添加(Add)、删除(Delete)和修改(Modify)功能。这些功能在网页应用中十分常见,特别是在处理用户交互和数据管理时。 jQuery 提供了...

    c#中GridView新增一行,jQuery实现对数据增删改查

    本文将深入探讨如何在C#中利用GridView控件新增一行数据,并通过jQuery实现对数据的增删改查操作。 首先,让我们详细了解GridView控件。GridView是一个服务器控件,它能够以表格形式展示数据,如数据库中的记录。它...

    一套基于jQuery实现的无刷新在线查单词功能源码例子

    无刷新在线查单词功能是现代Web应用中常见的一种技术,它通过Ajax技术实现了页面内容的动态更新,无需用户手动刷新整个页面。在这个基于jQuery实现的例子中,我们可以深入学习如何利用jQuery的强大功能来优化用户...

    jquery easyUI 实现动态生成多条件查询功能

    谁在jquery easyUI 下做过动态生成多条件查询...大体就这样,点击“添加条件”,生成上面描述的一行,这个在jquery easyUI 框架下如何实现,再者,假如post表单提交,服务器脚本如何获取和组装前台提交过来的多个条件。

    运用jQuery实现Ajax无刷新在线查词工具.rar

    运用jQuery实现Ajax无刷新在线查词工具,在线查单词,输入关键词后,无刷新显示查询结果,通过异步获取XML数据并进行分析处理,然后通过DOM操作写入页面文件,无页面刷新。。如果你对Ajax功能感兴趣,本源码可作为一...

    jquery实现的左右选择的例子

    本实例"jquery实现的左右选择的例子"是利用jQuery创建的一个功能组件,它提供了用户友好的界面,允许用户在左右两个面板之间选择和移动条目,适用于多种场景,如数据筛选、选项选择等。 这个组件的核心知识点包括:...

    前端+jQuery+实现烟花特效

    前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+...

    jQuery实现增删改1.html

    jQuery实现增删改

    DataTable+Jquery+Bootstrap实现表格增删改查

    DataTable+Jquery+Bootstrap实现表格增删改查 使用DataTable+Jquery+Bootstrap实现表格增删改查

    Json 格式分页、Jquery easy ui 增删改查例子

    下面是一个使用JQuery EasyUI实现增删改查的基本步骤: 1. **数据绑定**:首先,你需要将从服务器获取的JSON数据绑定到`datagrid`中。这可以通过设置`url`属性来实现,EasyUI会自动发送Ajax请求获取数据。 ```...

    Ajax(jQuery实现例子)

    Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子) Ajax(jQuery实现例子)

    JQuery实现的GridView行拖拽例子

    在这个"JQuery实现的GridView行拖拽例子"中,我们将深入探讨如何利用jQuery来实现GridView控件中行的拖放功能,这是一种增强用户交互性和界面动态性的常见方法。 首先,GridView是ASP.NET中用于显示数据的一种Web...

    jquery dtree 实例 动态实现无限树形菜单(增删改查)

    关于增删改查功能的实现,这通常涉及到后端数据的交互。在用户界面上,可以通过添加按钮、删除按钮、编辑按钮和搜索框来实现这些操作。例如,添加新节点时,可以创建一个新的数据对象,然后调用特定的API将其添加到...

Global site tag (gtag.js) - Google Analytics