如何获取form中所有选中的checkbox-前端-IT技术博客

如何获取form中所有选中的checkbox

时间:2014-03-30 06:48:01 浏览: 字体: 放大 缩小


怎么获取form中所有选中的checkbox?
我的checkbox是根据数据库中的查询结果来生成的,不知道有多少个,名字也不太固定,javascript中有没有方法得到form中所有选中的checkbox的name呀?

------解决方案--------------------
jquery
$(':checked').each(function() {
var name = $(this).attr('name')
});
------解决方案--------------------
<script type="text/javascript">
function init(){
var c=0;
var a=document.forms[0];
var b=a.getElementsByTagName("input");
for(var i=0;i<b.length;i++){
if(b[i].type=="checkbox"){
c+=1;
}
}
alert(c);
}
window.onload=init;
</script>
</head>

<body>
<form>
<input type="checkbox">1<br/>
<input type="checkbox">1<br/>
<input type="checkbox">1<br/>
<input type="checkbox">1<br/>
</form>
</body>
这样试试
------解决方案--------------------
用过js实现看看
------解决方案--------------------
jquery
JScript code

$("input[type=checkbox]:checked").each(function() {
  var name = $(this).attr('name')
});

------解决方案--------------------
JScript code
<html>
<head>
    <script src="ec/jquery/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function test() {
            var $chks = $("#myform :checkbox:checked"); //得到指定form中 所有选中的checkbox, 并给一个变量
            var nameArr = [];
            $chks.each(function () {
                if ($.inArray($(this).attr("name"), nameArr) == -1) {   //inArray这个方法, 在低版本的jquery可能没有, 建议你用高版本的.
                    nameArr.push($(this).attr("name"));                 //如果数组中没有此名字, 才加入数组         
                }
            });
            alert(nameArr);     //输出: "A,B"
        }
    </script>
</head>
<body>
<form id="myform" >
    <ul>
        <li>name为A:
            <input type="checkbox" name="A" checked="checked" value="A1" />A1
            <input type="checkbox" name="A"  value="A2" />A2
            <input type="checkbox" name="A" checked="checked" value="A3" />A3
        </li>
        <li>name为B:
            <input type="checkbox" name="B" checked="checked" value="B1" />B1
            <input type="checkbox" name="B" checked="checked" value="B2" />B2
            <input type="checkbox" name="B" value="B3" />B3
        </li>
        <li>name为C:
            <input type="checkbox" name="C" value="C1" />C1
            <input type="checkbox" name="C" value="C2" />C2
            <input type="checkbox" name="C" value="C3" />C3
        </li>
    </ul>
    <input type="button" value="得到form中, 所有选中的checkbox的name" onclick="test()" />
</form>
</body>
</html>

------解决方案--------------------
HTML code

<script type="text/javascript">
function foo(){
   var arr=new Array();
   var inputs=document.getElementsByTagName("input");
   var o={};
   for(var i=0;i<inputs.length;i++){
        var input=inputs[i];
        if(input.type=="checkbox" && input.checked==true){
            if(o[input.name]===undefined){
                  o[input.name] = 1;
                  arr.push(input.name);
            }  
        }
    }
    
     alert("选中的name有:"+arr);
       
}
  window.onload=foo;
</script>
<form>
<input type="checkbox" name="t1">
<input type="checkbox" name="t1" checked>
<input type="checkbox" name="t1" checked>
<p>第二批</p>
<input type="checkbox" name="t2" checked>
<input type="checkbox" name="t2">
<input type="checkbox" name="t3" checked>
<input type="checkbox" name="t3">
<p>第三批</p>
<input type="checkbox" name="t4">
<input type="checkbox" name="t5" checked>
</form>

标签: formcheckbox中所选中