boostrap中CheckBox的无法选中的问题

这两天在做项目的时候遇到这种在bootstrap框架中用CheckBox标签添加复选框无法选择的问题,所有整理了这篇笔记大家共同学习。
复选框无法选中可以给该复选框添加click事件
例:

 function checkboxClick(scope) {
    if ($(scope).is(":checked")) {
    	$(scope).prop("checked", true);
    } else {
    	$(scope).prop("checked", false);
    }
}

如果添加click事件依然没有选中,可能考虑是冒泡的原因,可以阻止冒泡
例:

 function checkboxClick(event, scope) {
	//阻止事件冒泡
    event.stopPropagation();
    if ($(scope).is(":checked")) {
    	$(scope).prop("checked", true);
    } else {
    	$(scope).prop("checked", false);
    }
}

##该方法同样适用于radio标签

jQuery中attr()和prop()方法的区别

prop(): 针对于HTML元素本身就带有的固有属性,
attr():针对于我们自己自定义的DOM属性。
例:

<input id="_hinge" type="checkbox" flag="test"/>

上例中,input元素的DOM属性有“id、type和flag”,很明显,前两个是固有属性,而后面一个“flag”属性是我们自己自定义上去的,input元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。
再例如:

<input type="checkbox" id="hinge1">
<input type="checkbox" id="hinge2" checked='checked'>

像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。

$("#hinge1").attr("checked") == undefined
$("#hinge2").attr("checked") == "checked"
$("#hinge1").prop("checked") == false
$("#hinge2").prop("checked") == true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值