检查所有带有分页的复选框

问题描述 投票:0回答:3

我目前有一个带有分页的报告,一次显示20条记录。总共有600条记录。

在此报告中,我还为每个记录都有一个复选框列。基于此,我的查询如下:

  1. 我想合并“全部检查”功能,因此基于显示20条记录(总共600条记录)的方案,当我按下“全部检查”复选框时,我实际上想检查全部600条记录记录,而不仅仅是每页20个。

    JavaScript可以做到这一点,因为记录的总数会有所不同吗?

  2. 与概念(1)相同,如果我有一个“提交”按钮,我实际上想验证所有600条记录均已检查,即使我一次只查看20条记录

    这可能吗?

javascript
3个回答
2
投票

如果您要javascript使用这种功能,则必须将所有复选框都呈现到屏幕上。


1
投票

如果您确实希望“全部检查”框表示检查所有页面,则建议在服务器端进行检查。

例如

<ul>
    <li><input type='checkbox' name='item_ids[]' value='1'/>Item 1</li>
    <li><input type='checkbox' name='item_ids[]' value='2'/>Item 2</li>
    <li><input type='checkbox' name='item_ids[]' value='3'/>Item 3</li>

    <li><input type='checkbox' name='check_all' value='check_all'/></li>

</ul>

当然,用户看不到的“复选框”意味着他们不能选择全部,然后取消选择单个。检查所有页面也有些违反直觉。这种事情的大多数实现只会影响您当前正在查看的页面。对于这种功能,我可能会使用其他控件(单独的按钮)。


1
投票

imo这可能不是用户期望的,并且众所周知,可用性的黄金法则是不要让用户感到惊讶。我建议使用一个按钮或链接,该按钮或链接应非常清楚地说明此操作将“选择全部,并且所有意思是所有页面上的所有记录”。

我看到的另一种可能的解决方案是一个链接,显示“在一页上显示全部”。在用户单击并且页面重新加载了所有记录并且没有分页之后,他们可以选择全部。

但是要真正回答您的问题,我需要更多信息。分页是在服务器端吗?还是服务器实际上提供了600条记录,但是将它们切成薄片并切成20/20块(在客户端上)?

© www.soinside.com 2019 - 2024. All rights reserved.