jQuery如何判断和设定单选多选是否选中??
2014-09-11 08:46
483 查看
如何判断HTML中的单选多选是否选中呢?
这是web编程中最常用的判断,可是前段时间,却遇到了一个很奇怪的问题。
我想很多人会这样判断
但如果是如下的HTML代码:
却发现上边的判断始终都是真,不管多选框是不是选中。于是我奇怪,以前自己都是这么判断的啊,好像没发现问题啊。
于是发现了这个属性其实在不同情况下是不同的。
1 HTML中没有checked="checked"这个属性时
例如:
HTML代码
判断是否选中可以这么做:
2HTML中有checked="checked"这个属性时,不可以通过 if($("#weixuanzhong").attr("checked")=="checked")来判断是否选中,
HTML代码
3如何选中多选?
一般情况下我们都使用 checked="checked"来设定选中项,好像也没问题,但如果是如下的HTML代码,
相反如果没有checked="checked"这个属性,也就是说HTML代码如下:
以此看来,设定多选框的选中状态,如果使用 $("#xuanzhong").attr("checked", "checked");这种方式,必须保证原始的HTML中没有checked="checked",否则就会出错,达不到想要的效果。
但使用$("#xuanzhong").prop("checked",true)不管什么情况都是可以选中的。
经过测试才发现,之所以自己之前能通过$("#xuanzhong").attr("checked")=="checked"判断多选框是否选中,恰恰是应为HTML中没有checked="checked",每次都是自己通过$("#xuanzhong").attr("checked", "checked");这种方式设定选中状态的,因此没有出错。
因此判断多选框是否选中应该使用$("#xuanzhong").prop("checked"),而不是$("#xuanzhong").attr("checked")=="checked",设定选中应该使用$("#xuanzhong").prop("checked",true),而不是$("#xuanzhong").attr("checked", "checked");,否则稍微不注意就会出错。
经过测试发现单选和多选是一样的,也和HTML中有没有checked="checked"这个有关
这是web编程中最常用的判断,可是前段时间,却遇到了一个很奇怪的问题。
我想很多人会这样判断
if($("#weixuanzhong").attr("checked")=="checked")//选中时 { }
但如果是如下的HTML代码:
<input type="checkbox" checked="checked" value="male" id="xuanzhong" />
却发现上边的判断始终都是真,不管多选框是不是选中。于是我奇怪,以前自己都是这么判断的啊,好像没发现问题啊。
于是发现了这个属性其实在不同情况下是不同的。
1 HTML中没有checked="checked"这个属性时
例如:
HTML代码
<input type="checkbox" value="male" id="xuanzhong" />
判断是否选中可以这么做:
if($("#xuanzhong").prop("checked"))//选中时,为真 { alert($("#xuanzhong").prop("checked")); }
2HTML中有checked="checked"这个属性时,不可以通过 if($("#weixuanzhong").attr("checked")=="checked")来判断是否选中,
HTML代码
<input type="checkbox" checked="checked" value="male" id="xuanzhong" />判断是否选中可以这么做:
if($("#xuanzhong").attr("checked")=="checked")//不管是否选中,都是真,无法判断 { alert($("#xuanzhong").attr("checked")); } if($("#xuanzhong").prop("checked"))//选中时,为真 { alert($("#xuanzhong").prop("checked")); }
3如何选中多选?
一般情况下我们都使用 checked="checked"来设定选中项,好像也没问题,但如果是如下的HTML代码,
多选默认选中 <input type="checkbox" checked="checked" value="male" id="xuanzhong" />使用如下的代码,并不能保证多选是选中状态,即使设定了,也会出现多选框没有选中的情况
$("#xuanzhong").attr("checked", "checked");
相反如果没有checked="checked"这个属性,也就是说HTML代码如下:
<input type="checkbox" value="male" id="xuanzhong" />可以使用如下脚本设定选中状态
$("#xuanzhong").attr("checked", "checked");
以此看来,设定多选框的选中状态,如果使用 $("#xuanzhong").attr("checked", "checked");这种方式,必须保证原始的HTML中没有checked="checked",否则就会出错,达不到想要的效果。
但使用$("#xuanzhong").prop("checked",true)不管什么情况都是可以选中的。
经过测试才发现,之所以自己之前能通过$("#xuanzhong").attr("checked")=="checked"判断多选框是否选中,恰恰是应为HTML中没有checked="checked",每次都是自己通过$("#xuanzhong").attr("checked", "checked");这种方式设定选中状态的,因此没有出错。
因此判断多选框是否选中应该使用$("#xuanzhong").prop("checked"),而不是$("#xuanzhong").attr("checked")=="checked",设定选中应该使用$("#xuanzhong").prop("checked",true),而不是$("#xuanzhong").attr("checked", "checked");,否则稍微不注意就会出错。
经过测试发现单选和多选是一样的,也和HTML中有没有checked="checked"这个有关
相关文章推荐
- jquery和js如何判断checkbox是否选中
- jquery判断单选按钮radio是否选中的方法
- jquery中如实现判断复选框是否选中,获取选中单选按钮的值,获取选中复选框的值
- jquery判断单选按钮radio是否选中的方法
- js判断单选多选是否选中(自定义题目数)
- jquery判断单选按钮radio是否选中的方法
- jquery 判断checkbox 是否选中和如何动态选中一个checkbox
- jquery判断单选按钮radio是否选中的方法
- jquery和js如何判断checkbox是否选中
- jquery判断单选按钮radio是否选中的方法
- jquery如何获取checkbox,并判断是否选中
- 关于jquery 如何判断checkbox 是否选中
- jquery判断单选按钮是否选中
- jquery判断单选按钮radio是否选中的方法
- jquery如何判断checkbox(复选框)是否被选中
- jquery如何判断checkbox(复选框)是否被选中(转)
- jquery判断checkbox是否选中
- 如何用javascript JQuery 判断图片是否存在!!!
- jquery checkbox,radio是否选中的判断代码
- jquery如何判断checkbox(复选框)是否被选中