checkbox 选中_jq中attr 设置checkbox 选中状态中的坑

本文介绍了在使用jQuery时,如何正确区分和使用prop与attr方法。特别是在处理复选框、单选按钮等元素的checked、selected及disabled状态时,使用prop方法能更准确地反映DOM元素的实际状态。

attr('checked', true)设置状态只有第一次有用,再次点击就无效果。类似的属性还有selected 和 disabled。当遇到这种情况的时候,把attr换成prop方法,prop和attr一样使用,以下有例子;

全选的小例子:

$(function(){   $("#j_cbAll").click(function(){     $("#j_tb input").prop("checked",$(this).prop("checked")) //根据全选按钮的状态,设置下属按钮的状态。   })    $("#j_tb input").click(function(){  //当点击下属产品时,全选按钮发生改变,此处用下属产品input的长度来判断是否为选中状态      var inputLen=$("#j_tb input").length;      var inputCheckLen=$("#j_tb input:checked").length;     if(inputLen==inputCheckLen){       $("#j_cbAll").prop("checked",true)     }else{       $("#j_cbAll").prop("checked",false)     }   }) })
b61e4b2f46598c3a81775a7ed38bde80.png
### 设置 HTML 中 Checkbox 可修改的方法 在 HTML 中,`<input>` 元素的 `type="checkbox"` 可通过设置其 `disabled` 属性来实现可修改的状态。当该属性被应用到 `<input type="checkbox">` 上时,用户将无法更改复框的状态。 以下是具体说明: #### 1. 基本语法 要让一个复可用,只需在其标签中添加 `disabled` 属性即可[^1]。例如: ```html <input type="checkbox" id="myCheckbox" disabled> <label for="myCheckbox">此</label> ``` 上述代码中的 `disabled` 属性会阻止用户交互,并使复框呈现灰色视觉效果[^3]。 #### 2. 动态控制 Disabled 状态 (JavaScript 实现) 如果需要动态启用或禁用复框,则可以借助 JavaScript 来完成这一功能。下面是一个简单的示例: ```javascript function toggleCheckboxState() { const checkbox = document.getElementById("dynamicCheckbox"); checkbox.disabled = !checkbox.disabled; } ``` 对应的 HTML 结构如下: ```html <input type="checkbox" id="dynamicCheckbox"> <button onclick="toggleCheckboxState()">切换可用/可用状态</button> ``` 这段脚本允许用户通过点击按钮来回切换复框的可用性和可用性。 #### 3. 使用 jQuery 控制 Disabled 属性 对于熟悉 jQuery 的开发者来说,也可以利用库的功能简化操作过程。比如,使用 `.prop()` 方法能够方便地管理元素的布尔型特性(如 `checked`, `selected`, 或者这里的 `disabled`)。实例展示如下: ```javascript $("#enableDisableButton").click(function(){ $("#jqCheckbox").prop('disabled', false); }); $("#disableEnableButton").click(function(){ $("#jqCheckbox").prop('disabled', true); }); ``` 配合相应的 HTML 配置: ```html <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <!-- 引入jQuery --> <input type="checkbox" id="jqCheckbox" /> <button id="enableDisableButton">启用</button> <button id="disableEnableButton">禁用</button> ``` 这里需要注意的是,虽然可以用 `.attr()` 方法处理某些情况下的 `disabled` 特性设定[^2],但在现代浏览器环境下推荐优先采用 `.prop()` 方式以获得更一致的行为表现。 #### 4. 自定义样式调整 默认情况下,浏览器会对带有 `disabled` 属性的控件自动施加特定外观变化;然而开发人员有时希望进一步自定义这些样式的显示形式。此时可通过 CSS 定义专属规则达成目标。举个例子: ```css /* 调整已停用复框的颜色 */ input[type=checkbox]:disabled + label{ color: graytext; } /* 改变背景色调 */ input[type=checkbox][disabled]{ background-color: lightgray; } ``` 以上片段展示了如何改变关联文字以及实际输入域本身的色彩配置[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值