普通状况下 radio 单选框仅仅能实现多选一的效果,但是一旦选择当中一个后,这个单选框就不可点击取消其选中状态了。这样的功能在某些业务环境下并不适用。有时咱们既需要单选框的多选一效果。也需要复选框的可点击取消效果。为此本文提供一种 JQuery 写法。javascript
/* 1. 取消与当前控件name 相同的所有控件的选中状态 2. 选中当前控件 3. 假设当前控件在点击前是选中状态,则点击后取消其选中状态 */ $("input:radio").click(function(){ var domName = $(this).attr('name');//获取当前单选框控件name 属性值 var checkedState = $(this).attr('checked');//记录当前选中状态 $("input:radio[name='" + domName + "']").attr('checked',false);//1. $(this).attr('checked',true);//2. if(checkedState == 'checked'){ $(this).attr('checked',false); //3. } });这里把 radio 换成 checkbox 也能获得相同效果。
在前文所设的需求下,咱们仅仅需要取到 0 个或 1 个值。所以为取值方便考虑,本文推荐使用 radio 。java
End .dom