`
jayyanzhang2010
  • 浏览: 377916 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用json临时保存信息,并分页。复选框选中和为选择的功能及临时保存信息

阅读更多
<!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>
    <title></title>
</head>
<body>
<div>
<table border="1" id="table_grid">
<tr><td><input type="checkbox" onclick/></td><td>ID</td><td>Name</td></tr>
</table>
<div><a href="javascript:createGrid('pre')">pre</a>   <a href="javascript:createGrid('next')">next</a>    <a href="javascript:getList()">save</a></div>
</div>


<div id="div_update">
<table border="1" id="table_update">
<tr><td>ID</td><td>Name</td></tr>
</table>
<div><a href="javascript:createUpdateGrid('pre','1')">pre</a>    <a href="javascript:createUpdateGrid('next','1')">next</a>    <a href="">update</a></div>
</div>

</body>
</html>
<script src="jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">

    var currentPage = 1; //当前页数

    var currentPageUpdate = 1;//update当前页数

    var objList = new Array(); //用于存放选中的复选框ID

    var updateObjList = new Array();//用于存放勾选框选中的对象
   
    //模拟数据源,第一页数据
    var source1 = [{ id: 1, name: "beny" }, { id: 2, name: "beny" }, { id: 3, name: "beny" }, { id: 4, name: "beny" }, { id: 5, name: "beny"}];

    //模拟数据源,第二页数据
    var source2 = [{ id: 6, name: "ben" }, { id: 7, name: "ben" }, { id: 8, name: "ben" }, { id: 9, name: "ben" }, { id: 10, name: "ben"}];

    //模拟数据源update,第一页数据
    var sourceUpdate1 = [{ id: 1, name: "aa1" }, { id: 2, name: "aa2" }, { id: 3, name: "aa3" }, { id: 4, name: "aa4" }, { id: 5, name: "aa5"}];

    //模拟数据源update,第二页数据
    var sourceUpdate2 = [{ id: 6, name: "bb" }, { id: 7, name: "bb" }, { id: 8, name: "bb" }, { id: 9, name: "bb" }, { id: 10, name: "bb"}];
   
    createGrid("pre");//首次创建表格

    //创建表格
    function createGrid(page) {
        delRow("table_grid");
        var source;
        if (page == "pre") {//模拟分页1
            source = source1;
            currentPage = 1;
        }
        else {//模拟分页2
            source = source2
            currentPage = 2; ;
        }
        var table = document.getElementById("table_grid");
        for (var i = 0; i < source.length; i++) {
            var tr = table.insertRow();

            var tdCkb = tr.insertCell();
            tdCkb.innerHTML = "<input type='checkbox' name='ckb' id='" + source[i].id + "' onclick=ckbOnClickEvent(this.id,'"+source[i].name+"') />";//加入点击事件


            var tdId = tr.insertCell();
            tdId.innerText = source[i].id;

            var tdName = tr.insertCell();
            tdName.innerText = source[i].name;

        }
        if (objList.length>0) {//判断是否第一次加载表格
            $("input[name='ckb']").each(function () {
                for (var i = 0; i < objList.length; i++) {
                    if (objList[i].currentPage == currentPage && objList[i].id == $(this).attr("id")) {//通过当前页码和复选框ID对比
                        $(this).attr("checked", true);//为复选框打勾
                    }
                }
            });
        }
    }

    //复选框点击事件
    function ckbOnClickEvent(ckbId,name) {
        getAllCkbValue(ckbId,name);
 
    }

    //获取所有复选框
    function getAllCkbValue(ckbId,name) {
        if ($("#" + ckbId).attr("checked") == true) {//如果选中的复选框是勾上的,就把当前页码和复选框的ID保存在JSON
            var obj = "{currentPage:" + currentPage + "," + "id:" + ckbId + ",name:'"+name+"'}";//把当前页码和复选框ID保存为JSON对象
            obj = eval("(" + obj + ")");
            objList.push(obj); //放进集合
        }
        else {//如果选中的复选框不是勾上的,就在集合对比,并删除
            for (var i = 0; i < objList.length; i++) {
                if (objList[i].id == $("#" + ckbId).attr("id")) {
                    objList.splice(i, 1); //删除集合的第i个
                }
            }
        }
    }

    //获取集合
    function getList() {
        for (var i = 0; i < objList.length; i++) {
   objList[i].name = 'monadan';
   alert(objList[i].id +","+objList[i].name+","+tr.rowIndex);
        }

    }

    //删除表格行
    function delRow(tableId) {
        var table = document.getElementById(tableId);
        var tr = table.getElementsByTagName("tr");
        for (var i = tr.length - 1; i > 0; i--) {
            table.deleteRow(i);
        }
    }

    //======================update======================
  
  
     //var currentPageUpdate = 1;//update当前页数
var totalPage = 0;
var pageCount = 2;
var allList = new Array();
var isFirst = "";
onload();
function onload(){
  allList.length  = 5;
  sourceUpdate1.length
  //alert("currentPage1:"+currentPage1);
  createUpdateGrid('first',isFirst); //创建update信息表格
}

    //创建update信息表格,两个参数,分页参数和是否是第一次创建表格 
    function createUpdateGrid(page,isFirst,source) {
  if(page == "pre"){
   if(currentPage != "1" ){
    currentPage = parseInt(currentPage) - 1;
   }
  
  }else if(page == "next"){
   if(currentPage >= 1){
    currentPage = parseInt(currentPage) + 1;
   }
  }
  var num =  (currentPage - 1) * pageCount;
  var numpage =  currentPage * pageCount;
 

  //把得到的值放到一个新的list里面。
            source = sourceUpdate1;
   isFirst = 1;
  //取到新修改的信息
   saveDate();
 
        delRow("table_update");
        var table = document.getElementById("table_update");
  for(var i =  num ; i < numpage; i++){
   if(typeof(source[i]) != 'undefined' ){
    var tr = table.insertRow();
    var tdId = tr.insertCell();
    tdId.innerText = source[i].id;
    var tdName = tr.insertCell();
    tdName.innerHTML = "<input name='text_update' type='text' value=" + source[i].name + " id="+source[i].id+" />";
   }
        }
      
        if (page !=  "first") {//如果是点击了分页按钮
            if (updateObjList.length > 0) {
                $("input[name='text_update']").each(function () {
                    for (var i = 0; i < updateObjList.length; i++) {
                        if ($(this).attr("id") == updateObjList[i].id) {
                            $(this).attr("value", updateObjList[i].name);
                        }
                    }
                });
            }  
        }
    }
    //保存当页数据
    function saveDate() {
        var valList = new Array();
        $("input[name='text_update']").each(function () {
  alert("--ssss--:"+$(this).attr("id")+"-"+$(this).attr("value"));
            valList.push($(this).attr("id")+"-"+$(this).attr("value"));//获取当前页的所有name文本框value,并保存在集合
        })

        for (var i = 0; i < valList.length; i++) {
            var obj = "{currentPage:" + currentPage + "," + "id:" + valList[i].split("-")[0] + ",name:'" + valList[i].split("-")[1] + "'}";  //把当前页码和修改的信息保存为JSON对象
            obj = eval("(" + obj + ")");
            updateObjList.push(obj); //放进集合
        } 
    }

</script>
分享到:
评论

相关推荐

    js翻页复选框状态保存

    3. **使用服务器端存储**:如果需要在多个会话间共享复选框的状态,可以考虑将状态保存在服务器端,每次页面加载时从服务器获取这些状态信息。 #### 具体实现步骤 1. **添加存储逻辑**:在每个复选框的状态发生...

    带复选框的多级目录树,复选框的选择控制子节点父节点 全选和反选

    在IT领域,尤其是在前端开发中,构建用户界面时经常需要处理多级目录树结构,并且在这样的结构中加入复选框功能,以便用户可以进行批量选择或者全选、反选操作。这种技术常用于文件管理器、权限设置、菜单配置等场景...

    JSP列表中复选框批量选择功能实现

    在JavaServer Pages (JSP) 开发中,常常需要实现用户界面中的批量选择功能,比如在列表中通过复选框来选中多个项目。本文将详细介绍如何在JSP中实现这样的功能,主要涉及HTML、JavaScript 和后端Java的交互。 首先...

    树结构 复选框 多选 全选功能

    在IT领域,尤其是在前端开发中,"树结构 复选框 多选 全选功能"是一个常见的交互设计模式,广泛应用于数据管理、文件系统、菜单导航等场景。这一功能的实现涉及到数据结构、事件处理、状态管理等多个方面的技术。 ...

    BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)

    本篇将详细介绍如何在Bootstrap Table中实现复选框的默认选中功能,特别地,我们将根据从数据库获取的状态来决定复选框是否被选中。 首先,我们需要引入Bootstrap Table的相关库,包括CSS和JavaScript文件。这些...

    复选框和下拉列表的提交和回显的实现方式

    接着,在页面加载完成后,我们通过Ajax获取指定作者的所有书籍信息,并设置相应的复选框为选中状态。具体实现如下: ```javascript $(function(){ var book = ${json}; // json里面只包含某作者的书籍 for (var i...

    CheckBox分级选中 复选框 上下级 联动

    在IT行业中,尤其是在前端开发领域,"CheckBox分级选中 复选框 上下级 联动"是一个常见的功能需求,通常应用于具有层级结构的数据展示和交互场景,比如树形菜单、组织架构选择等。这个功能的核心是实现复选框...

    ajax动态加载无限级树的复选框

    本话题聚焦于利用Ajax动态加载无限级树结构的复选框,这是一个常见于文件管理、组织架构展示、权限设置等场景的功能。在这里,我们将深入探讨如何实现这一功能。 首先,我们需要理解树形结构的数据模型。树形结构是...

    下拉复选框

    在IT界,尤其是在前端开发中,"下拉复选框"是一种常见的用户界面元素,它结合了下拉菜单和复选框的功能,为用户提供了一种高效、简洁的选择多个选项的方式。EasyUI是一个基于jQuery的轻量级前端框架,它提供了一系列...

    树形复选框(Checkbox)

    在网页设计和开发中,树形复选框是一种常见的用户界面元素,用于提供层次结构的选择选项。本项目通过结合JavaScript和CSS技术,实现了一个具有展缩功能和选中数显示的树形复选框组件。下面我们将深入探讨这个组件的...

    Asp.net带复选框下拉表

    在Asp.net Web应用程序开发中,"带复选框的下拉表"是一种常见的用户界面元素,它结合了下拉列表的紧凑性与复选框的多选功能,为用户提供了一种更直观、灵活的选择方式。这样的控件通常用于需要用户从多个选项中选择...

    Qml自定义复选框QmlCheckBox.7z

    在QML(Qt Quick)中,复选框(CheckBox)是一种常见的用户界面元素,用于提供是/否或开/关的选择。Qml自定义复选框QmlCheckBox.7z这个压缩包文件很可能是包含了一个自定义实现的复选框组件,供开发者在QML应用中...

    隐藏layui数据表格表头的checkbox复选框

    具体来说,我们需要找到表头对应的`&lt;th&gt;`标签,并定位到其中包含复选框的`&lt;div&gt;`标签,然后将其替换为一个空的`&lt;div&gt;`标签,以此来移除复选框的显示。下面将详细解释具体步骤及代码实现。 #### 实现步骤 1. **定位...

    jQuery高性能带复选框的树形结构插件

    `highchecktree`是一个专门针对这种情况设计的jQuery插件,它能高效地处理大量数据并提供带有复选框的功能,使得用户可以进行多级选择操作。 ### 插件特点 1. **高性能**: `highchecktree`特别优化了大数据量的...

    有下拉菜单的复选框的js代码

    在网页开发中,有下拉菜单的复选框是一种常见的交互元素,它允许用户在一组选项中进行多项选择,同时这些选项又能隐藏在一个下拉菜单内以节省空间。本示例涉及的技术点主要包括HTML基础、CSS样式以及JavaScript编程...

    省市区联动下拉,下拉框复选框控件

    在网页设计和开发中,"省市区联动下拉,下拉框复选框控件"是一种常见的用户界面元素,主要用于用户输入地理位置信息。这个控件通常由三个下拉菜单组成,分别代表省份、城市和区县,它们之间存在联动关系。当用户在...

    form表单复选框取值

    例如,通过`$('input[name="ch"]:checked')`选择器找到所有`name="ch"`且被选中的复选框,然后使用`.val()`方法获取其对应的值。 ```javascript // 获取选中复选框的值 var form = $("#checkForm").serialize();...

    js树状地区三级级联带复选框

    在JavaScript编程领域,"js树状地区三级级联带复选框"是一个常见的需求,尤其在构建具有地域选择功能的Web应用时。这个功能允许用户通过一个层级结构来选择国家、省份和城市,同时提供了复选框以支持多选。在本篇中...

    jQuery的复选框操作-实例页面

    在jQuery中,我们可以通过选择器来定位这些复选框,并使用各种方法来操控它们的状态和行为。以下是一些关键知识点: 1. **选择器**: jQuery提供了多种选择器,例如`$("[type=checkbox]")`可以选取所有类型为...

    jquery实现带复选框的gridview

    总的来说,"jquery实现带复选框的gridview"这个项目为开发者提供了一个起点,帮助他们快速构建具有复选框功能的数据网格。结合jQuery的灵活性和强大的DOM操作能力,开发者可以创建出用户友好、功能丰富的Web应用。在...

Global site tag (gtag.js) - Google Analytics