2013-05-05 4 views
4

Я пытаюсь установить флажок «Выбрать все», но когда я сниму его и выберем снова, он больше не будет выбирать поля. Хотя он работает в первый раз.Как только я удаляю атрибут, я не могу его добавить

Это мой код:

HTML:

<div id="Everything"> 
    <input type="checkbox" id="all" />Select All 
    <br /> 
    <br /> 
    <div id="selectThese"> 
     <input type="checkbox" id="First" />First 
     <br /> 
     <input type="checkbox" id="Second" />Second 
     <br /> 
    </div> 
</div> 

JS:

$(function() { 
    $("#Everything").on("click", "#all", function() { 
     var carStatus = $("#all").is(':checked'); 
     if (carStatus == true) { 
      $("#selectThese input").attr("checked", "checked"); 
     } else { 
      $("#selectThese input").removeAttr("checked"); 
     } 
    }); 
}); 

Jsfiddle ссылка: http://jsfiddle.net/Epsju/1/

ответ

5

Вы должны будете использовать prop() для этого, и поскольку он принимает логическое значение для проверки и снятия отметки с элемента, вы можете нам е переменная непосредственно, или просто угробить переменную и использовать this.checked:

$(function() { 
    $("#Everything").on("change", "#all", function() { 
     $("#selectThese input").prop("checked", this.checked); 
    }); 
}); 

FIDDLE

+0

Wow спасибо работает как шарм и выглядит намного короче и лучше! – 2013-05-05 01:19:31

1

http://jsfiddle.net/Epsju/6/

Используйте change также ваш скрипку использует #car, когда он должен использовать #all.

$(function() { 
    $("#Everything").on("change", "#all", function() { 
     $('#selectThese :checkbox').prop('checked', $(this).is(':checked')); 
    }); 
}); 
1

Попробуйте это: - Demo

$(function() { 
    $("#Everything").on("change", "#all", function() { 
     $('#selectThese :checkbox').prop('checked', $(this).is(':checked')); 
    }); 
}); 

И ViceVersa

$('#selectThese :checkbox').on('change', function() { 

      $('#all').prop('checked', $('#selectThese :checkbox:checked').length == $('#selectThese :checkbox').length) 
     }); 
+2

+1 для очень приятного решения. – Christian

+0

@ Христианское спасибо ... – PSL

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