#javascript #jquery #html
#javascript #jquery ( jquery ) #HTML
Вопрос:
Функция переключения флажка работает только один раз, и после первого экземпляра она не работает. Любая помощь?
Вот jsfiddle: http://jsfiddle.net/66gmK /
<script>
$(document).ready(function() {
$(document).on('click','#1',function(){
$("INPUT[type='checkbox']").each(function(){
var Checked = $(this).attr('checked');
$(this).attr('checked', !Checked);
});
});
});
</script>
<body>
<form id="form1" name="form1" method="post" action="">
<p>
<input name="checkbox" type="checkbox" id="1" value="0" />
<label for="1" >Toggle All</label>
</p>
<p>
<input name="checkbox" type="checkbox" id="2" value="0" />
ahmed</p>
<p>
<input name="3" type="checkbox" id="3" value="0" />
<label for="3">omar</label>
</p>
</form>
</body>
Комментарии:
1. Привет, что-то не так с вашим jquery, я обновил ваш код и посмотрел, то ли это, что вы хотели: jsfiddle.net/66gmK/5
2. да, это сработало, большое спасибо @dunli
Ответ №1:
Переместите Checked
переменную из each поскольку this
контекст меняется в each, это относится к флажку в цикле, а не к переключающему флажку. Удалите оператор !
not при изменении проверяемого свойства. Также используйте prop
вместо attr
для проверяемого свойства.
$(document).ready(function() {
$(document).on('click','#1',function(){
var Checked = $(this).prop('checked');
$("INPUT[type='checkbox']").each(function(){
$(this).prop('checked', Checked);
});
});
});
Ответ №2:
ваш jquery для каждой функции, вы не должны изменять свойство toggle checkbox.
$(document).ready(function() {
$(document).on('click','#1',function(){
$("INPUT[type='checkbox']").not(this).each(function(){
var Checked = $(this).prop('checked');
$(this).prop('checked', !Checked);
});
});
});
Ответ №3:
Вы также можете использовать
$(document).ready(function() {
$('#1').on('click',function(){
var Checked = $(this).prop('checked');
$.each($("input[type='checkbox']"), function(i,e){
$(e).prop('checked', Checked);
});
});
});