A-A+
jquery中checkbox反复没反应问题解决办法
checkbox由于特殊性所以我们要选中与反选都与其它的有一点区别,下文小编整理了一个jquery中checkbox反复没反应问题解决办法,大家一起来看看。
jquery1.9以后,checkbox的选中用attr就有问题,第一次能选中,第二次选不中,要换成prop来设置属性。
1,问题重现,代码如下:
- <html>
- <body>
- <input type="checkbox" name="items" value="test" id='test' />test
- <button class='selected'>选中</button>
- <button class='unselected'>不选中</button>
- </body>
- <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
- <script type="text/javascript">
- $(function(){
- $('.selected').click(function(){
- $('#test').attr('checked','checked');
- });
- $('.unselected').click(function(){
- $('#test').removeAttr('checked');
- });
- });
- </script>
- </html>
在这里有一点要注意,第一次选中后,用开发者工具,可以看到,checkbox有checked='checked'属性,第二次,点了,但是选不中,还是有checked='checked'
2,解决办法,代码如下:
- <script type="text/javascript">
- $(function(){
- $('.selected').click(function(){
- $('#test').prop('checked',true);
- });
- $('.unselected').click(function(){
- $('#test').prop('checked',false);
- });
- });
- </script>