2012-03-02 107 views
1

我試圖通過編程檢查取消checkboxlist的所有選項,但我的代碼不工作。這裏是摘錄檢查取消選中checkboxlist的所有複選框使用jQuery的ASP.Net

$(document).ready(function() { 
    $('#myLink').click(function() { 
     $("INPUT[id^='chkFileds']").attr('checked', $('#chkFileds').is(':checked')); 
    }); 
}); 

我的代碼有什麼問題。我希望當用戶點擊檢查超鏈接時,複選框列表的所有選項將被選中,當再次點擊同一鏈接時,複選框列表中的所有選項將被取消選中。請指導我如何去做。感謝

UPDATE:

感謝烏拉圭回合的答案,但我說的不是支票,而複選框列表什麼有許多複選框inside.it貌似....他我給的CheckBoxList

的HTML
<table style="font-weight:bold;" id="chkCountry"> 
    <tbody> 
     <tr> 
      <td> 
       <input type="checkbox" value="GB" name="chkCountry$0" id="chkCountry_0"> 
       <label for="chkCountry_0">UK</label> 
      </td> 
      <td> 
       <input type="checkbox" value="US" name="chkCountry$1" id="chkCountry_1"> 
       <label for="chkCountry_1">USA</label> 
      </td> 
     </tr> 
    </tbody> 
</table> 
+0

是您的ID在所有複選框始終拼寫錯誤?也許它應該是'$(「INPUT [id^='chkFields']」)'。另外,'$('#chkFileds')'是指什麼? – 2012-03-02 13:22:56

+0

如果您還包含了本應該與之配合使用的HTML,那將會更容易。 – 2012-03-02 13:44:30

+0

[jQuery:check all checkboxes](http://stackoverflow.com/questions/2088468/jquery-check-all-checkboxes) – jrummell 2012-03-02 14:16:45

回答

6

你的標記仍然缺少一些正確回答問題所需的相關代碼,但是,假設myLink是一個複選框,下面的代碼將工作。

$(document).ready(function() { 
    $('#myLink').click(function() { 
     $("INPUT[id^='chkCountry_']").attr('checked', $('#myLink').is(':checked')); 
    }); 
}); 

這裏的a working fiddle

注意:你的代碼不工作的原因有幾個。主要是,您的選擇器chkFileds與您以任何方式發佈的標記無關。

附加信息:

這裏的屬性選擇運營商的快速綱要:

= is exactly equal 
!= is not equal 
^= starts with 
$= ends with 
*= contains 
+0

我將$(「INPUT [id^='chkCountry_']」)改爲$(「INPUT [id * ='chkCountry_']」),現在它正在工作....謝謝 – Thomas 2012-03-04 18:15:16

+0

@Thomas,隨時投票這個或標記爲答案然後... – 2012-03-04 22:34:01

+0

@Thomas,請參閱編輯(附加信息部分)。除非你的標記不正確,否則表示**以**開頭的'^ ='應該已經起作用了。無論哪種方式,很高興它的工作。 – 2012-03-05 12:38:04

0

如果你的選擇是正確的,他們這樣做似乎有點怪,也許是這樣的:

$(document).ready(function() { 
    $('#myLink').on('click', function() { 
     var check = $('#chkFileds').is(':checked') ? false:true; 
     $("INPUT[id^='chkFileds']").prop('checked', check); 
    }); 
}); 

FIDDLE

究竟是什麼意思,「所有」選項,你的目標是一個ID,它是唯一的?

+0

因爲.is(':checked')'返回一個布爾值,你不要't實際上需要三元運算符......'var check = $('#chkFileds')。is(':checked');'就足夠了。 :) – pete 2012-03-02 13:28:03

+0

@pete - 這是另一種方式?真是假,假是真的。可以使用不是或!,但這樣做? – adeneo 2012-03-02 13:32:19

+0

他正在修改所有輸入,其中**以「chkFileds」開頭,而不僅僅是ID等於該字符串的單個元素。每個元素的檢查狀態設置爲ID爲'chkFileds'的元素的檢查狀態。取其價值的倒數與問題似乎不一致。 – 2012-03-02 13:43:51

相關問題