1. 程式人生 > >JS checkbox 選中事件

JS checkbox 選中事件

<html>
<script>
function SelectLeastOne(){
        objName= document.getElementById("myform")   
        for (i=0; i<objName.length; i++){
                if (objName[i].type=="checkbox" && objName[i].checked){    
                alert('你選中了'+(i+1));            
                }
        }   
}
</script>
<form name="myform" method="post" onSubmit="">
<input type="checkbox" name="checkbox" value="checkbox">1
<input type="checkbox" name="checkbox" value="checkbox">2
<input type="checkbox" name="checkbox" value="checkbox">3
<input type="checkbox" name="checkbox" value="checkbox">4
<input type="button" name="Submit" value="Submit" onclick="SelectLeastOne()" />
</form>
</html>
今天做一個類似郵件的多選操作時用到了複選框,有關驗證與取值以前也做過,記的不是很清楚了,今天弄清白了,記錄一下。
表單如下:
<form name="form1" action="test.jsp" method="post" onsubmit="return checkData();">
   <input name="checkall1" type="checkbox" value="0" onClick="checkAllBox(this);"/>全選<br>
   <input name="answer" type="checkbox" value="a"/>A<br>
   <input name="answer" type="checkbox" value="b"/>B<br>
   <input name="answer" type="checkbox" value="c"/>C<br>
   <input name="answer" type="checkbox" value="d"/>D<br>
   <input name="answer" type="checkbox" value="e"/>E<br>
   <input name="answer" type="checkbox" value="f"/>F<br>
</form>
全選及驗證javascript如下:

<script type="text/javascript">
function checkAllBox(obj){
 var answer= document.getElementsByName("answer");
 if(obj.checked==true){
  for(var i=0;i<answer.length;i++){
   answer[i].checked = true;
  }
 }else{
  for(var i=0;i<answer.length;i++){
   answer[i].checked = false;
  }
 }
}
function checkData(){ 
 var answer= document.getElementsByName("answer");
 var flag = false;
 for(var i=0;i<income.length;i++){
  if(income[i].checked == true){
   flag = true;
   break;
  }
 }
 if(!flag){
  alert("請至少選擇一項");
 }
 return flag;
}
</script>
test.jsp中取值如下:

String[] answer= request.getParameterValues("answer");//這裡只取得了選中的項,如果沒有選中任何一項,則為null
if(answer!=null){
   for(String i:answer){
      System.out.println(i);
   }
}