JS checkbox

找当前点击的checkbox是否选中
$(e).is(':checked')

找选中的checkbox 数量
$(".selectpeople:checked").length;

 

获取所有已选中的:


var checkedArr = []; 
$("input[name='xxx']:checked").each(function() { 
    checkedArr.push($(this).val()); 
});

获取所有未选中的:


var notCheckedArr = []; 
$("input[name='xxx']:not(:checked)").each(function() { 
    notCheckedArr.push($(this).val()); 
});

 

好的文章:https://blog.youkuaiyun.com/chenchunlin526/article/details/77448168?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task


双循环绑定状态  所有的checkbox  idlist  要绑定状态的checkbox  idlist 双循环如果id匹配上就加状态

在控制器中双循环 把所有团的和当前内容满足的团id找出来放入able中

 //共用库存特殊设置详情页面
        public ActionResult PackageSpecialInventory()
        {
            
string key = Request.QueryString["adminKey"];
          
  int id =Convert.ToInt32(Request.QueryString["planid"]);            
           
 ViewBag.Key = key;
           
            List<TourPackage> all = new PackageBLL().TourPackage_SpecialTour();
            List<TourPackage_SpecialInventory> l = new PackageBLL().TourPackage_SpecialInventorybyid(id);
            List<TourPackage> able = new List<TourPackage>();
            foreach (var item in all)
            {
                foreach (var i in l)
                {
                    foreach (var t in i.TourPackagePlanTour)
                    {
                        if (t.PackageId == item.Id)
                        {
                            TourPackage ab=new TourPackage();
                            ab.Id=item.Id;
                            able.Add(ab);
                        }
    
                    }
                }
            }
            //查所有可选的团
            ViewBag.tourpackages = all;
           //根据planid查出详情信息
            ViewBag.detaildata = l;
            //要勾选的团
            ViewBag.abletourpackages=able;
            return View();
        
        }


然后在页面中接收

@{
    List<AA_MOD.PackageInfo.TourPackage> tourpackages = ViewBag.tourpackages;
    List<AA_MOD.PackageInfo.TourPackage> abletourpackages = ViewBag.abletourpackages;
     
}
接收之后页面遍历的时候以遍历所有的为前提  查询id是否在满足的数据中这个id存在 存在即选中
 @*所有可以选择的团遍历*@
                    <td id="PackageList">

                        @foreach (var item in tourpackages)
                        {
                            var mod = abletourpackages.Find(a => a.Id == item.Id);

                            <input type="checkbox" data-code="@item.PackageCode" id=@item.Id @if (mod != null) { <text> checked="checked" </text>  } οnclick="Clike(this);" />@item.PackageCode

                        }
                                                 
                        </td>

                    </tr>

### 如何在JavaScript中处理复选框 在JavaScript中,可以通过多种方式来操作和管理HTML页面中的复选框。以下是几种常见的方法及其应用场景。 #### 使用事件监听器捕获表单提交并处理复选框状态 当用户提交表单时,可以遍历所有的复选框,并根据其状态动态创建隐藏字段以便传递数据到服务器端[^1]: ```javascript // 处理表单提交事件 $('#frm-example').on('submit', function(e){ var form = this; // 遍历表格内的所有复选框 table.$('input[type="checkbox"]').each(function(){ // 如果该复选框不在DOM树中,则跳过 if (!$.contains(document, this)){ // 若复选框被勾选 if (this.checked){ // 动态添加隐藏输入项至表单 $(form).append( $('<input>') .attr('type', 'hidden') .attr('name', this.name) .val(this.value) ); } } }); }); ``` 此代码片段展示了如何通过jQuery库实现对复选框的选择情况的检测以及相应动作的执行。 #### 实现全选/取消功能 对于包含大量选项的情况,提供一个按钮让用户一键完成全部选择或者清除所有已选项是非常实用的功能之一。下面是一个简单的例子说明怎样利用纯JS达成这一目标[^4]: ```html <form id="myForm"> <input type="button" value="Select All" onclick="selectAll();"/> <input type="button" value="Deselect All" onclick="deselectAll();" /> <br/> <asp:CheckBoxList ID="chkListItems" runat="server"> <Items> <asp:ListItem Text="Item 1"></asp:ListItem> <asp:ListItem Text="Item 2"></asp:ListItem> ... </Items> </asp:CheckBoxList> </form> <script language="javascript"> function selectAll() { document.getElementById('<%= chkListItems.ClientID %>').getElementsByTagName("INPUT").forEach(item => item.checked=true); } function deselectAll() { document.getElementById('<%= chkListItems.ClientID %>').getElementsByTagName("INPUT").forEach(item => item.checked=false); } </script> ``` 上述脚本定义了两个函数`selectAll()` 和 `deselectAll()` ,分别用于设置或重置指定控件下的每一个子元素的状态。 #### 监听用户的交互行为 为了及时响应任何可能改变界面显示逻辑的操作(比如点击某个特定区域),我们需要有效地探测这些变化的发生时刻。这里介绍了一种高效的方法去识别键盘按键或是鼠标移动等类型的活动[^2]: ```javascript var idleTime = 0; window.onload=function resetIdleTimer(){ window.onmousemove=resetIdleTimer; window.onclick=resetIdleTimer; window.onscroll=resetIdleTimer; window.keypress=resetIdleTimer; }; function resetIdleTimer(){ clearTimeout(idleTimeoutObject); idleTime = 0; idleTimeoutObject=setTimeout(userIsInactive,idleThreshold*1e3); }; ``` 以上示例设置了全局变量跟踪空闲时间长度,并绑定多个常用事件处理器重新初始化计时器以防超时注销等情况发生。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值