javascript - 在分页和每页显示结果中选择全部,同时使用 JQuery 禁用和启用按钮
问题描述
我有一个全选选项,带有一个按钮。加载时按钮被禁用。如果您选择在列表中选择全部或两个或更多选择项,则该按钮将被禁用。但是,我有分页和显示表中要显示的许多项目。有没有办法可以持久保存它,以便它在分页以及显示编号更改时工作?
这是我的代码:
//Disable Top Verify Button if two or more checkboxes are selected.
$(document)('.verifyshipment-btn').prop('disabled', true);
$(document).on(".individual").on("click", function () {
if ($(".individual:checked").length > 1) {
$('.verifyshipment-btn').prop('disabled', false);
}
else {
$('.verifyshipment-btn').prop('disabled', true);
}
});
//Select All
$('.verifyshipment-btn').prop('disabled', true);
$(document).on(".selectall").click(function () {
if ($(".individual:checked").length > 1) {
$('.verifyshipment-btn').prop('disabled', false);
}
else {
$('.verifyshipment-btn').prop('disabled', true);
}
});
分页和显示选项
$(document).on("click",
"#indexPager a",
function() {
if ($(this).parent().hasClass('disabled') || $(this).parent().hasClass('active'))
return false;
$.ajax({
url: $(this).attr("href"),
type: 'GET',
cache: false,
success: function(result) {
$('#tableContainer').html(result);
addBootstrapTooltips("#tableContainer");
}
});
return false;
});
$(document).on("change",
"#pageSizeSelector",
function() {
var selectedValue = $(this).val();
$.ajax({
url: selectedValue,
type: 'GET',
cache: false,
success: function(result) {
$('#tableContainer').html(result);
addBootstrapTooltips("#tableContainer");
}
});
});
解决方案
正如之前的评论者所指出的,你真的有两个选择:
(1) 将数据保存在您的应用程序服务器上(通过类似会话 cookie 的方式),然后让您的客户端在需要时向服务器查询该信息。
(2) 将数据保存在浏览器的会话/本地存储中,并在需要时从那里检索。
如果您需要此选项跨设备持续存在(即,用户在您提供的交互流程的中间切换计算机),那么最好的方法是(1)。但是,如果您不是后端开发人员(例如,您是否知道/有权创建/操作数据库和创建新的 api 端点?),向后端添加额外的数据可能会很痛苦。
对于其他一切,我建议使用(2),特别是会话存储,它会在用户会话结束时自动垃圾收集数据(在重新加载后幸存下来,但在浏览器关闭时被删除)。如果您需要更多手动数据管理,您可以使用浏览器的本地存储。
推荐阅读
- c - 无法在函数外初始化全局变量
- c++ - 使用 CMake 和 SYSROOT 路径进行交叉编译的问题
- c# - c# 从子类实例化对象
- reactjs - React setState 不会更新我的表的视图
- python - .loc、.iloc 和已弃用的 .ix 的速度。为什么不使用.ix?
- angular - Angular 7 变更检测部分更新组件
- node.js - 无法 npm 登录到私人关系仓库
- html - MDB Bootstrap 轮播指示器改变位置
- java - Log4j2 不会在 Spring Boot 中创建日志文件
- javascript - 无法使用 Ajax 调用更新 DataTable 的正文