2015-10-17 5 views
1

У меня есть столбец динамически созданных флажков. Я проверил все флажки вверху в th. Мне нужно проверить все флажки, кроме тех, которые уже были проверены.проверить все флажки, которые не отмечены

<input type="checkbox" class="checkAll" /> 
<input name=""rowBox type="checkbox" class="row checkbox" value="1" checked /> 
<input name=""rowBox type="checkbox" class="row checkbox" /> 
<input name=""rowBox type="checkbox" class="row checkbox" /> 

$('input.checkAll').on('click', function(){ 


$('input[name="name=""rowBox"]').prop('checked', this.checked) 
    }) 

Это работает, чтобы проверить все галочки, но неустановленные те, которые проверяются при загрузке страницы первоначально.

+0

Почему вы отфильтровываете отмеченные флажки, если хотите, чтобы все они были отмечены? Также ваш HTML некорректен, а «rowBox» плавает сам по себе. –

+0

К сожалению, опечатка на rowBox. Tha - это имя каждого флажка. Я не хочу те, которые уже проверены, чтобы получить изменения с помощью события click. – jsNovice

+0

@jsNovice Вот что он спрашивает. почему вы хотите игнорировать его? Стоит ли вам чего-нибудь? –

ответ

1

Для архивирования вашей проблемы, я использовал <button>, как правило, у меня есть массив, который помечены флажками. «1» для проверки и «0» для непроверенных. Затем я докажу, что это «1», и с .prop() Я проверил его снова.

HTML

<input type="checkbox" class="checkAll" /> 
<input name="rowBox" type="checkbox" class="row checkbox" value="ch0" checked /> 
<input name="rowBox" type="checkbox" value="ch1" class="row checkbox"/> 
<input name="rowBox" type="checkbox" value="ch2" class="row checkbox" checked/> 
<button id="revert">revert</button> 

JQuery

$(document).ready(function(){ 
var sList = ""; 
$(".checkAll").change(function(){ 
    $('input[name=rowBox]').each(function() { 
     var sThisVal = (this.checked ? "1" : "0"); 
     sList += (sList=="" ? sThisVal : sThisVal); 
    }); 

    $('input[name="rowBox"]').prop('checked', $(this).prop("checked"));  
}); 

$("#revert").click(function(){ 
    for(var i =0; i < sList.replace(",", "").length; i++){ 
     if(sList[i]=="1"){ 
     $('input[value="ch'+i+'"]').prop("checked", true) 
     } 
     else{ 
     $('input[value="ch'+i+'"]').prop("checked", false) 
     } 
    } 
    }); 
}); 

Обновлено

Проверьте это на jsfiddle

+0

Да, это функциональность, которую я имею в настоящее время. Опять же, если один или несколько флажков уже отмечены, я не хочу изменять их состояние. – jsNovice

+0

ok Я также записал, что вы не указали имя поля ввода в двойных кавычках. –

+0

Марио, да, это была опечатка. На мой взгляд, у меня есть правильный html. – jsNovice

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