JQuery操作单选按钮以及复选按钮

来源:岁月联盟 编辑:exp 时间:2012-03-30

1. 复选框操作:

<form> 您爱好的运动是: <input type="checkbox" name="item" value="football"/> football <input type="checkbox" name="item" value="basketball"/> basketball <input type="checkbox" name="item" value="badminton"/> badminton <input type="checkbox" name="item" value="pingpong"/> pingpong <input type="button" id="checkAll" value="全选"/> <input type="button" id="checkFootball" value="选中足球"/> </form>

绑定事件

$(document).ready(function() { $('#checkAll').click(checkAll); // 全选 $('#checkFootball').click(checkFootball); // 单选足球 });

选中所有的。 这里分别提供了两种方式进行选中。具体参见API中的属性和表单选择器

function checkAll() { $('input[type="checkbox"][name="item"]').attr("checked", true); // $('[name="item"]:checkbox').attr("checked", true); }

注: 全反选只需要将这里的 true 换成 false 即可。

选中足球

function checkFootball() { $("[name='item']:checkbox").each(function() { if (this.value == 'football') { this.checked = true; } }) }

注: 具体目的为了解决从后台取出数据,显示。这里并没有用jQuery的attr()和val()方法来设置选中和获得当前checkbox的值,改用了JavaScript原生的 Dom 方法,将比创建jQuery对象更有效。

2. 单选按钮操作:

A B C D 您选择哪一个:<br/> <input type="radio" name="item" value="A"/>A <input type="radio" name="item" value="B"/>B <input type="radio" name="item" value="C"/>C <input type="radio" name="item" value="D"/>D <input type="button" id="getLetter" value="获得字母"/>

初始化选中字母B

$(document).ready(function() { 
// 数据初始化选择B。
$('[name="item"]:radio').each(function() { if (this.value == 'B') { this.checked = true;
} });
// 绑定获得字母的事件 $('#getLetter').click(getLetter);
}
);

获得所选中的字母

function getLetter() { alert('获得的字母为:' + $('[name="item"][checked=true]:radio').val()); }

 

传统的JS获取选中的值如下:

[javascript] function getids(){ 
                var obj = document.getElementsByTagName("input"); 
                var menuIds=""; 
                for ( var i = 0; i < obj.length; i++) { 
                    if (obj[i].type == "checkbox" && obj[i].checked == true) { 
                        menuIds+= obj[i].value + ","; 
                    } 
                } 
                if(menuIds.indexOf(",")!=-1){ 
                    menuIds=menuIds.substring(0, menuIds.length-1);//去掉结尾的,  
                } 
                return menuIds; 
            } 
function getids(){
    var obj = document.getElementsByTagName("input");
    var menuIds="";
    for ( var i = 0; i < obj.length; i++) {
     if (obj[i].type == "checkbox" && obj[i].checked == true) {
      menuIds+= obj[i].value + ",";
     }
    }
    if(menuIds.indexOf(",")!=-1){
     menuIds=menuIds.substring(0, menuIds.length-1);//去掉结尾的,
    }
    return menuIds;
   }

单选按钮以及复选按钮在开发过程中会经常用到,下面我就来通过JQuery操作单选按钮和复选按钮:

单选按钮:

通过JQuery获取单选按钮对象我们总共有三种途径:

①ID:$("#radioId")

②NAME:$(":input[name='radioName']")

③TYPE:$("input[type=radio]"),可能在有的资料上面写的是:$(""input[@type=radio]""),这个的话跟你的JQuery版本有关系,如果是老版本的话就用后者,新版本就用前者,如果不知道自己的版本到底适合用哪一个的话就挨个试,反正一次尝试就能搞定,而且还能学到知识,何乐而不为呢!

我们都知道,在一组单选按钮当中只能使一个生效,要实现这种效果,很多人可能会认为把ID改为相同的就可,其实,你去尝试一下就会知道,在一组单选按钮中仍然可以选用多个。因为,实现此效果的关键属性不是ID,而是NAME。

介绍完了之后,我们投入到只用当中吧:

我们获取完单选按钮的对象之后,就得对此对象进行遍历,因为,此对象的类型是一个数组,我们要挨个对其进行判断是否被选中,然后再从选中的按钮中取出所需要的值,示例代码如下:


[javascript]  var itemradio = $("input[type=radio]"); 
        result=""; 
        nums = itemradio.length; 
        for(i=0;i<nums;i++)    { 
               if(itemradio[i].checked){   
                   result = itemradio[i].value+","+itemradio[i].id+";"+result; 
               } 
        } 
result就是我想获取的值,前面那个value可能大家会看得懂,而后面那个ID有的人可能会犯迷糊。在此,我就进行一下扩展:在JS中所有的对象都可以直接通过“.”来获取属性的值。

复选框:

关于复选框,我们需要的只是“全选和反选”的效果,使用JQuery的话只要一句话就可以搞定,如下:


[javascript]  var checkedObj = $('input:checkbox[name="checkbox"]:checked'); 
        var values = ""; 
        checkedObj.each(function() {  
            var value=this.value + ",";  
            values += value; 
        }); 
好啦,通过上面的两段代码你就可以操作复选框和单选按钮啦!!!  


摘自  云淡风轻、仅此一抹