2012-03-02 6 views
1

Я пытался удалить флажок со всеми опциями checkboxlist программно, но мой код не работает. здесь находится фрагментcheck uncheck all checkbox of checkboxlist with jquery ASP.Net

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

что не так в моем коде. я хочу, чтобы при нажатии на гиперссылку на клике, вся опция списка флажков будет проверяться, а при повторном нажатии по той же ссылке все флажки будут сняты. пожалуйста, помогите мне, как это сделать. благодаря

UPDATE:

спасибо за уры ответа, но я не говорю о проверке скорее список флажка, что имеет много флажка inside.it похож .... он я даю HTML из CheckBoxList

<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')'? –

+0

Это будет намного легче помочь, если вы также включите HTML, с которым это должно работать. –

+0

Возможный дубликат [jQuery: отметьте все флажки] (http://stackoverflow.com/questions/2088468/jquery-check-all-checkboxes) – jrummell

ответ

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

i change $ ("INPUT [id^= 'chkCountry_']") до $ ("INPUT [id * = 'chkCountry_']"), и теперь он работает .... спасибо – Thomas

+0

@Thomas, не стесняйтесь проголосовать это вверх или отметьте его как ответ тогда ... –

+0

@Thomas, см. править (раздел дополнительной информации). Если ваша разметка не указана, '^ =', которая указывает ** начинается с **, должна была работать. В любом случае, рад, что он работает. –

0

Если селекторы являются правильными, и они, кажется, немного странно, может быть что-то вроде этого:

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

FIDDLE

Что именно вы подразумеваете под «всеми» вариантами, вы нацеливаете идентификатор, и он уникален?

+0

Поскольку '.is (': checked')' возвращает логическое значение, вы не На самом деле нужен тройной оператор ... 'var check = $ ('# chkFileds'). is (': checked');' достаточно. :) – pete

+0

@pete - Это наоборот? true - false, а false - истина. Не мог бы использовать не или!, Но сделал это так? – adeneo

+0

Он модифицирует все входы с идентификатором, который ** начинается с ** «chkFileds», а не только с одним элементом с идентификатором, который равен этой строке. Проверяемый статус для каждого из этих элементов установлен в статус проверки элемента с идентификатором 'chkFileds'. Взятие обратного значения не похоже на вопрос. –

Смежные вопросы