使用JS实现JSP列表页面复选框状态翻页保持
"js翻页复选框状态保存" 在网页应用中,经常需要处理列表页面的分页和用户交互,特别是在JSP(JavaServer Pages)环境中。标题"js翻页复选框状态保存"指的是使用JavaScript来实现一个功能,即在用户翻页时保持复选框的选中状态。描述中提到的"jsp列表页面,复选框选中状态保存,用js编写"进一步确认了我们需要关注的重点是JavaScript代码如何在多页之间存储和恢复复选框的状态。 首先,我们需要了解基本的HTML复选框结构和JavaScript事件处理。在HTML中,复选框通常使用`<input type="checkbox">`标签创建,每个复选框可能关联一个特定的值。在JSP列表页面中,这些复选框可能用于用户选择多个项目执行批量操作。 在给定的部分代码中,可以看到以下关键点: 1. 变量定义: - `pListSize` 存储了查询到的全部数据条数。 - `patientIds` 用于存储所有选中项的ID,初始为空字符串。 - `nowDisLength` 记录当前页面显示的数据条数,如果少于10条,可能是最后一页。 2. DOM准备就绪事件 (`$(document).ready()`): - 调用 `getPatientByVo()` 函数初始化列表数据。 - 定义查询按钮(`#search`)的点击事件,用于重新加载列表。 - 实现键盘回车事件监听,当用户按下回车键时,也会调用 `getPatientByVo()` 加载数据。 3. 复选框事件处理: - `$("#myTable").delegate("#total","click",function(event)` 用于处理全选复选框(id为`total`)的点击事件,可能调用了一个名为 `checkTotal` 的函数,实现全选或全不选的功能。 - `$("#myTable").delegate(":checkbox[name='chk']","click",function(event)` 监听子项复选框(name属性为`chk`)的点击事件,调用 `checkChange(event)` 函数,这可能用于更新选中状态并保存相应的ID。 4. `getPatientByVo` 函数: - 这个函数看起来是用于根据用户输入的条件(如出院方式、科室、时间范围等)获取患者信息。 - 函数中对开始时间和结束时间进行了格式化,确保它们包含完整的日期和时间信息,以便于数据库查询。 要实现复选框状态的保存,可以采用以下策略: - 当用户选择复选框时,将对应的ID添加到 `patientIds` 变量中。 - 在翻页时,可以通过URL参数或本地存储(如localStorage)来传递已选ID。如果存在ID,可以在加载新页面时根据这些ID预选对应的复选框。 - 当用户切换页面时,通过比较 `patientIds` 和当前页面的数据,设置相应复选框的选中状态。 需要注意的是,为了确保用户体验和数据一致性,还需要考虑以下几个方面: - 如果用户在不同页面选择了相同的项,需要避免重复添加ID。 - 用户可能在不同的设备或浏览器窗口打开页面,因此持久化存储(如cookies或服务器端存储)可能是必要的。 - 在用户更改查询条件后,应清空已选状态,因为这可能会导致之前的选择无效。 通过以上分析,我们可以看到,实现"js翻页复选框状态保存"涉及到JavaScript事件处理、DOM操作、数据存储以及与服务器的交互等多个方面的知识。在实际开发中,这通常会涉及到前后端的协同工作,确保数据的正确同步和用户界面的响应性。
var patientIds = "";// 查询全部数据ids
var nowDisLength = 0;//不足10条当前数据条数
$(document).ready(function() {
// 列表数据
getPatientByVo();
// 查询按钮
$("#search").click(function() {
getPatientByVo();
});
// 回车事件
document.onkeydown = function(e) {
// 兼容FF和IE和Opera
var theEvent = e || window.event;
var code = theEvent.keyCode || theEvent.which || theEvent.charCode;
if (code == 13) {
getPatientByVo();
}
};
// 头部全选复选框
$("#myTable").delegate("#total", "click", function(event) {
checkTotal();
event.stopPropagation();
});
// 子项复选框按钮
$("#myTable").delegate(":checkbox[name='chk']", "click", function(event) {
checkChange(event);
event.stopPropagation();
});
/**
* 条件查询患者信息
*/
function getPatientByVo() {
var goType = $("#goType").val();// 出院方式
var department = $("#department").val();// 科室
var beginTime = $("#beginTime").val();// 开始时间
if (beginTime != null && beginTime != "") {
beginTime = beginTime + " 00:00:00";
}
var endTime = $("#endTime").val();// 结束时间
if (endTime != null && endTime != "") {
endTime = endTime + " 23:59:59";
}
var paramData = {
"patientInfo.goType" : goType,
"patientInfo.departMentId" : department,
"patientInfo.startTime" : beginTime,
"patientInfo.endTime" : endTime
}
$.ajax({
url : basePath + 'dhsf/patientInfo_getPatietnByVo.action',
type : 'post',
dataType : 'json',
data : paramData,
success : function(data) {
pListSize = data.pListSize;
patientIds = data.patientIds;
剩余8页未读,继续阅读
- 粉丝: 13
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦