`
fooxiaoqiang
  • 浏览: 2218 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于JS复选框的那个恶心的问题

阅读更多
或许这个问题真的很简单,我这思想被困住了。又或许这问题真的很恶心,弄了一下午。

实际上就是一个复选框的问题

上面无数个复选框,下面一个复选框。选中一个的可以选中无数的。
无数的选择满了,就可以把一个的设置为选中状态。

正着做好做。选中一个全部选中。反着做结果被正着做的把思维困住了。再加上有人提醒,用一个全局变量。这下更坏了。脑子里就奔着全局变量下手了。
还一个问题,就是当多个复选框被选中的时候,还算是数组,当只剩下一个复选框被选中做迭代的时候,就会出现无法选中一个复选框无法选中的状态。
最后利用了很笨的方法解决的问题,哎~


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script type="text/javascript">

        function allSelect() {
            var username = document.getElementsByName("usernames");
            var state = document.getElementById("allselectbox").checked;
            var length = document.getElementsByName("usernames").length;
            if (length) {
                for (var i = 0; i < length; i++) {
                    username[i].checked = state;
                }
            } else {
                username.checked = state;
            }
        }
        function selectAll() {
            var length = document.getElementsByName("usernames").length;
            var username = document.getElementsByName("usernames");

            for (var i = 0,count = 0; i < length; i++) {
                if (username[i].checked == true) {
                    count++;
                    if (count == length) {
                        document.getElementById("allselectbox").checked = true;
                    } else {
                        document.getElementById("allselectbox").checked = false;
                    }
                }
                if (count == 0) {
                    document.getElementById("allselectbox").checked = username[i].checked;
                }
            }

        }

    </script>
</head>
<body>
<table>
    <tr>
        <td bgcolor="f5f5f5">
            <div align="center"><input type="checkbox" name="usernames" value="${entry.username}" onclick="selectAll()">
            </div>
        </td>
        <td bgcolor="f5f5f5">
            <div align="center">Name1</div>
        </td>
    </tr>
    <tr>
        <td bgcolor="f5f5f5">
            <div align="center"><input type="checkbox" name="usernames" value="${entry.username}" onclick="selectAll()">
            </div>
        </td>
        <td bgcolor="f5f5f5">
            <div align="center">Name2</div>
        </td>
    </tr>
    <tr>
        <td bgcolor="f5f5f5">
            <div align="center"><input type="checkbox" name="usernames" value="${entry.username}" onclick="selectAll()">
            </div>
        </td>
        <td bgcolor="f5f5f5">
            <div align="center">Name3</div>
        </td>
    </tr>


    <table width="100%" border="0" cellspacing="1" cellpadding="3">
        <tr>
            <td width="10%"><input type="checkbox" onclick="javascript:allSelect()" id="allselectbox">SelectAll/None</td>
        </tr>
    </table>
</body>
</html>

分享到:
评论

相关推荐

    带复选框的下拉框

    总的来说,"带复选框的下拉框"是一个在Ext JS框架中实现的自定义组件,它提供了在下拉列表中选择多个选项的能力。通过解决不同版本的兼容性问题,这个组件可以在3.2至3.4版本的Ext JS中稳定工作。对于需要多选功能的...

    使用javascript对复选框的各种操作

    以下是一些JavaScript对复选框的基本操作及其详细解释: 1. **获取复选框状态**: 使用`document.getElementById()`或`document.querySelector()`方法可以获取特定复选框的状态。复选框的`checked`属性用于检查...

    jsp/html 实现下拉复选框

    下拉复选框通常由HTML的`&lt;select&gt;`元素与`&lt;option&gt;`子元素配合使用,而为了实现更丰富的交互效果,我们可能还会涉及到JavaScript(js)和CSS(css)的运用。在这个项目中,包含的`TestPublicUserManageNew.html`是主...

    复选框全选全不选JS代码

    - **性能问题**:对于拥有大量复选框的页面,遍历整个HTMLCollection可能会导致性能瓶颈。可以通过添加条件过滤器,仅获取复选框元素,减少不必要的循环次数。 - **可维护性与可读性**:为了提高代码的可维护性和...

    复选框选中表格中的行进行删除行操作

    在IT领域,尤其是在Web开发和用户界面设计中,"复选框选中表格中的行进行删除行操作"是一项常见的功能需求。这个功能主要用于提供用户友好的数据管理方式,让用户能够批量选择并处理表格中的数据。下面我们将详细...

    解决Extjs当中复选框全选后,取消选中某一项,全选框仍是选中状态的问题

    在EXTJS这个强大的JavaScript框架中,用户界面的交互设计是其一大亮点,其中包括各种各样的控件,如复选框(checkboxes)和全选功能。然而,在实际应用中,我们可能会遇到一个问题:当实现全选功能后,如果尝试取消...

    简单复选框样式

    "简单复选框样式"这个主题正是为了解决这个问题,通过CSS和JavaScript技术来改变复选框的默认外观,提升用户体验。 首先,我们要理解HTML复选框的基本结构。一个简单的复选框由`&lt;input type="checkbox"&gt;`标签创建,...

    超炫的复选框效果源码

    6. **事件处理**:使用JavaScript或者jQuery处理复选框的点击事件,可能包括批量选中、反选等功能,增加复选框的实用性。 7. **复选框组**:在网格布局中,可能会有多个复选框组成一个组,实现联动或互斥的效果,...

    CheckBox复选框美化版

    “js”目录包含了一些JavaScript文件,除了上面提到的tzCheckbox插件,可能还有其他用于处理复选框行为的脚本,如响应式设计、动画效果或者事件处理函数。 “readme.html”通常是一个说明文件,提供了关于如何使用...

    dtree 带复选框

    综合以上信息,我们可以推测这个压缩包可能包含一个使用Python、JavaScript或者其他编程语言实现的决策树库,该库在可视化决策树时增加了复选框功能,使用户能够更直观地选择和查看不同路径。然而,由于存在bug,...

    jquery实现 复选框 选中和不选中 美化复选框

    jQuery作为一个强大的JavaScript库,提供了解决这一问题的方法,可以通过自定义CSS和事件处理来实现复选框的美化和交互功能。本文将详细介绍如何使用jQuery实现复选框的选中与不选中效果的美化。 首先,我们需要...

    jQuery树形复选框插件.zip

    《jQuery树形复选框插件的深度解析与应用》 在Web开发中,为了提供用户友好的交互体验,我们经常需要实现各种各样的UI组件。其中,树形结构的复选框是一种常见且实用的功能,它允许用户以层级方式选择或取消选择一...

    选中一级复选框,相关二级或父级同时被选,取消也是

    在多级复选框联动中,当用户选中一个复选框(假设为一级复选框),其所有子级复选框(二级、三级等)以及可能的父级复选框也会自动被选中。同理,当取消一级复选框时,所有相关的子级和父级复选框也会被取消选中。这...

    layui-table表复选框勾选的所有行数据获取的例子

    在进行网页开发时,常常需要对表格中的数据进行交互操作,其中一个常见的需求是获取用户通过复选框勾选的行数据。...希望本文能够帮助到正在使用layui-table进行开发的朋友们,解决他们在获取复选框数据时遇到的问题。

    复选框全选和反选.zip

    这个"复选框全选和反选.zip"文件可能包含了一个JavaScript实现的解决方案。JavaScript是一种广泛使用的客户端脚本语言,用于为网页添加交互性。 复选框(Checkbox)是HTML中的一个基本元素,它允许用户对一个选项...

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

    ### 隐藏LayUI数据表格表头的Checkbox复选框方法详解 #### 背景介绍 在前端开发过程中,经常会使用到LayUI框架搭建网页应用,尤其是在设计复杂的数据展示界面时,LayUI提供了强大的数据表格功能。然而,在某些场景...

    下拉复选框

    在网页设计和开发中,"下拉复选框"是一种常用的交互元素,它结合了下拉菜单和复选框的功能,允许用户在一个列表中选择一个或多个选项。jQuery 是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理以及动画效果...

    使用DWR实现checkbox复选框的修改默认功能

    4. **编写JavaScript代码**:在页面加载完成后,使用DWR调用Java方法获取复选框的初始状态,然后监听用户的复选操作,当用户更改复选框状态时,通过DWR调用`setCheckedStatus`更新服务器端。 5. **更新页面显示**:...

    js juqery非常好用的复选框已选中的个数统计 及 js验证码 判断表单是否有选择,没有就不提交

    非常好用的复选框已选中的个数统计 及 js验证码 判断表单是否有选择,没有就不提交。代码非常简洁,个人写网站时候常用的有力帮手,自己可以下载来按需修改,不好用你找我要分。

    form表单复选框取值

    在本例中,我们关注的是如何使用JavaScript(JS)和Java来处理HTML表单中的复选框(checkbox)取值问题。复选框允许用户在多个选项中选择一个或多个。 1. **复选框取值** 复选框在HTML中通常使用`...

Global site tag (gtag.js) - Google Analytics