2012-08-16 69 views
1

我有一個腳本,檢查並檢查窗體中的所有框,我的問題是我只想讓它隻影響我的複選框,但它也影響我的單選按鈕。檢查並取消選中框中的框

這是我的javascript

<script> 

checked=false; 
function checkedAll (frm1) { 
    var aa= document.getElementById('frm1'); 
    if (checked == false) 
      { 
      checked = true 
      } 
     else 
      { 
      checked = false 
      } 
    for (var i =0; i < aa.elements.length; i++) 
    { 
    aa.elements[i].checked = checked; 
    } 
     } 
</script> 

這是我的HTML

<form id ="frm1"> 
<input type="checkbox" name="chk1"> 
<input type="radio" name="chk1"> 
<input type="checkbox" name="chk2"> 
<input type='checkbox' name='checkall' onclick='checkedAll(frm1);'> 
</form> 

我想知道是否有一種方法只檢查複選框不是單選按鈕。

+0

可以簡化的if-else用一條線替換它:'檢查= checked'; – 2012-08-16 18:40:23

回答

3
for (var i =0; i < aa.elements.length; i++) 
{ 
    if (aa.elements[i].type == "checkbox") { 
     aa.elements[i].checked = checked; 
    } 
} 
+0

作品像魅力 – tawheed 2012-08-16 19:09:09

0

您可以遍歷表單元素並檢查「type」屬性。或者,您可以使用像jQuery這樣的JavaScript庫,這樣可以更輕鬆地選擇某些類型的元素。

var elLength = document.MyForm.elements.length; 

for (i=0; i<elLength; i++) 
{ 
    var type = MyForm.elements[i].type; 
    if (type=="checkbox" && MyForm.elements[i].checked){ 
     alert("Form element in position " + i + " is of type checkbox and is checked."); 
    } 
    else if (type=="checkbox") { 
     alert("Form element in position " + i + " is of type checkbox and is not checked."); 
    } 
    else { 
    } 
} 

在jQuery中這將是:

$("input[type='checkbox']).each(function(chk) { 
    chk.checked = !chk.checked; 
}); 
+0

** chk.checked **不起作用。使用** this.checked =!this.checked ** – 2012-08-16 19:03:04

+0

是的..我應該把'$(chk).checked =!$(chk).checked' ...好趕上 – 2012-08-16 19:27:57

+0

它不起作用。看到這個jsfiddle.net/dariushvb2010/J5AaG/ – 2012-08-16 22:38:00

0

您可以使用jquery。在你的編輯器中使用下面的html代碼。它工作正常!

<html> 
<head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.js"> </script> 
</head> 
    <form id="myform"> 
     <input type="checkbox" />chk1 
     <input type="checkbox" />chk2<br/>  
     <input type="radio" />radio1<br/>  
     <a style="cursor:pointer" onclick="ch()">check/uncheck</a> 
    </form> 
</body></html> 

與此腳本:

<script> 
    function ch(){ 
     $("form#myform input[type='checkbox']").each(function(chk) { 
      this.checked = !this.checked; 
     });   
    } 
</script> 
相關問題