JQuery: проверить, если флажок НЕ установлен

У меня проблемы с выяснением этого. У меня есть два флажка (в будущем будет больше):

    checkSurfaceEnvironment-1 литий> checkSurfaceEnvironment-2 литий>

По сути, я хочу написать оператор if и проверить, если один из них проверен, а другой НЕ проверен. Какой самый простой способ сделать следующее:

 if ( $("#checkSurfaceEnvironment-1").attr('checked', true) &&
     $("#checkSurfaceEnvironment-2").is('**(NOT??)** :checked') ) {
        // do something
}
90 голосов | спросил user1040259 11 J000000Wednesday12 2012, 23:37:05

16 ответов


0

Один надежный способ, которым я пользуюсь:

if($("#checkSurfaceEnvironment-1").prop('checked') == true){
    //do something
}

Если вы хотите перебрать проверенные элементы, используйте родительский элемент

$("#parentId").find("checkbox").each(function(){
    if ($(this).prop('checked')==true){ 
        //do something
    }
});

Дополнительная информация:

Это хорошо работает, потому что все флажки имеют свойство, проверяющее фактическое состояние флажка. Если вы хотите, вы можете проверить страницу и попытаться установить и снять флажок, и вы заметите, что атрибут «флажок» (если присутствует) останется прежним. Этот атрибут представляет только начальное состояние флажка, а не текущее состояние. Текущее состояние сохраняется в проверяемом свойстве элемента dom для этого флажка.

См. свойства и атрибуты в HTML

ответил Pablo Mescher 11 J000000Wednesday12 2012, 23:39:47
0
if (!$("#checkSurfaceEnvironment-1").is(":checked")) {
    // do something if the checkbox is NOT checked
}
ответил shweta 8 42012vEurope/Moscow11bEurope/MoscowThu, 08 Nov 2012 11:11:16 +0400 2012, 11:11:16
0

Вы также можете использовать jQuery .not() или ---- +: = 1 =: + ---- селектор:

:not()

Пример JSFiddle


Дополнительные заметки

Из документации API jQuery для if ($('#checkSurfaceEnvironment').not(':checked').length) { // do stuff for not selected } селектор :

  

.not () метод в конечном итоге предоставит вам более удобочитаемый   выборки, чем вставка сложных селекторов или переменных в : not ()   Фильтр селектора . В большинстве случаев это лучший выбор.

ответил Aneesh Vijendran 26 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 26 Sep 2013 20:18:49 +0400 2013, 20:18:49
0

Альтернативный способ:

Вот рабочий пример , а вот код, вы также должны использовать prop.

$('input[type="checkbox"]').mouseenter(function() { 
    if ($(this).is(':checked')) {
        //$(this).prop('checked',false);
        alert("is checked");
    } else {
         //$(this).prop('checked',true);
        alert("not checked");
    }
});​

Я прокомментировал способ переключения отмеченного атрибута.

ответил Trufa 11 J000000Wednesday12 2012, 23:43:43
0
if ( $("#checkSurfaceEnvironment-1").is(":checked") && $("#checkSurfaceEnvironment-2").not(":checked") )
ответил Zoltan Toth 11 J000000Wednesday12 2012, 23:42:15
0

Здесь у меня есть фрагмент этого вопроса.

 $(function(){
   $("#buttoncheck").click(function(){
        if($('[type="checkbox"]').is(":checked")){
            $('.checkboxStatus').html("Congratulations! "+$('[type="checkbox"]:checked').length+" checkbox checked");
        }else{
            $('.checkboxStatus').html("Sorry! Checkbox is not checked");
         }
         return false;
   })
    
});
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <p>
    <label>
      <input type="checkbox" name="CheckboxGroup1" value="checkbox" id="CheckboxGroup1_0">
      Checkbox</label>
    <br>
    <label>
      <input type="checkbox" name="CheckboxGroup1_" value="checkbox" id="CheckboxGroup1_1">
      Checkbox</label>
    <br>
  </p>
  <p>
    <input type="reset" value="Reset">
    <input type="submit" id="buttoncheck" value="Check">
  </p>
  <p class="checkboxStatus"></p>
</form>
ответил Ashok 17 PM00000010000001831 2015, 13:43:18
0

Верните true, если все чеки проверяются в div

function all_checked (id_div){
 all_checked = true;

 $(id_div+' input[type="checkbox"]').each(function() { 
    all_checked = all_checked && $('this').prop('checked');
 }

 return all_checked;
}
ответил Martin Da Rosa 12 MarpmWed, 12 Mar 2014 18:26:25 +04002014-03-12T18:26:25+04:0006 2014, 18:26:25
0

Простое и легко проверяемое или непроверенное условие

<input type="checkbox" id="ev-click" name="" value="" >

<script>
    $( "#ev-click" ).click(function() {
        if(this.checked){
            alert('checked');
        }
        if(!this.checked){
            alert('Unchecked');
        }
    });
</script>
ответил Ravi Bhoraniya 2 Jam1000000amMon, 02 Jan 2017 10:18:39 +030017 2017, 10:18:39
0

попробуйте это

if ($("#checkSurfaceEnvironment-1:checked").length>0) {
    //your code in case of NOT checked
}

В вышеприведенном коде выберите элемент по Id (#checkSurfaceEnvironment-1), затем отфильтруйте его проверенное состояние по (:checked) фильтр.

Он вернет массив проверенных элементов объекта. Если в массиве существует какой-либо объект, тогда условие будет выполнено.

ответил Satish Kumar sonker 25 FebruaryEurope/MoscowbThu, 25 Feb 2016 10:16:05 +0300000000amThu, 25 Feb 2016 10:16:05 +030016 2016, 10:16:05
0

Проверить состояние можно двумя способами.

if ($("#checkSurfaceEnvironment-1").is(":checked")) {
    // Put your code here if checkbox is checked
}

ИЛИ вы также можете использовать этот

if($("#checkSurfaceEnvironment-1").prop('checked') == true){
    // Put your code here if checkbox is checked
}

Я надеюсь, что это полезно для вас.

ответил Gaurang Sondagar 30 42017vEurope/Moscow11bEurope/MoscowThu, 30 Nov 2017 07:35:13 +0300 2017, 07:35:13
0

Вот самый простой способ

 <script type="text/javascript">

        $(document).ready(function () {
            $("#chk_selall").change("click", function () {

                if (this.checked)
                {
                    //do something
                }
                if (!this.checked)
                {
                    //do something

                }

            });

        });

    </script>
ответил Debendra Dash 4 Jam1000000amThu, 04 Jan 2018 07:45:01 +030018 2018, 07:45:01
0

Я использовал это и работал на меня!

$("checkbox selector").click(function() {
    if($(this).prop('checked')==true){
       do what you need!
    }
});
ответил Seyed 25 J000000Monday16 2016, 08:01:59
0

Я знаю, что на этот вопрос уже дан ответ, но, тем не менее, это хороший способ сделать это:

if ($("#checkbox").is(":checked")==false) {
    //Do stuff here like: $(".span").html("<span>Lorem</span>");
}
ответил Hello World 4 AMpWed, 04 Apr 2018 00:39:54 +030039Wednesday 2018, 00:39:54
0
if($("#checkbox1").prop('checked') == false){
    alert('checkbox is not checked');
    //do something
}
else
{ 
    alert('checkbox is checked');
}
ответил Rutvik kakadiya 12 12018vEurope/Moscow11bEurope/MoscowMon, 12 Nov 2018 10:42:17 +0300 2018, 10:42:17
0

Я думаю, что самый простой способ (с помощью jQuery) проверить, установлен ли флажок или НЕТ:

if 'флажок':

if ($(this).is(':checked')) {
// I'm checked let's do something
}

если НЕ "отмечен":

if (!$(this).is(':checked')) {
// I'm NOT checked let's do something
}
ответил Michael Stachura 11 Jpm1000000pmFri, 11 Jan 2019 16:24:25 +030019 2019, 16:24:25
0
$("#chkFruits_0,#chkFruits_1,#chkFruits_2,#chkFruits_3,#chkFruits_4").change(function () {
        var item = $("#chkFruits_0,#chkFruits_1,#chkFruits_2,#chkFruits_3,#chkFruits_4");
    if (item.is(":checked")==true) {
        //execute your code here
    }

    else if (item.is(":not(:checked)"))
    {
        //execute your code here
    }

});
ответил Cool_Yusuf 5 J0000006Europe/Moscow 2018, 16:16:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132