2016-12-01 2 views
-2

Я пытаюсь проверить/снять флажок с помощью jQuery 1.12. Это мой код:Флажок prop() не работает должным образом

$(document).ready(function() { 
 
    $('#btn-agree').click(function() { 
 
    $('#checkbox-3').prop('checked', true); 
 
    }); 
 
    $('#btn-notagree').click(function() { 
 
    $('#checkbox-3').prop('checked', false); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script> 
 
<input type="checkbox" name="agreement" id="checkbox-3" /> 
 
<button id="btn-agree">I Agree</button> 
 
<button id="btn-notagree">Cancel</button>

Когда я нажимаю btn-agree, функция не возвращает никаких ошибок, но флажок не установлен. console.log($('#checkbox-3').prop('checked'); показать true

Может ли кто-нибудь указать, что случилось в моем коде?

Редактировать Я считаю, что проблема исходит из чего-то еще в моем проекте. вы можете удалить этот вопрос.

+0

Вы связываете событие только с использованием 'btn-agree'' '$ ('# btn-notagree')' для привязки второго обработчика кликов. – Satpal

+0

Возможный дубликат [Установка «отмечена» для флажка с jQuery?] (Http://stackoverflow.com/questions/426258/setting-checked-for-a-checkbox-with-jquery) – jkris

+0

@Satpal oh right. извините, я написал неправильный код. второй должен был быть # btn-notagree – dapidmini

ответ

0

Вы должны сделать что-то подобное, то есть chekc проверяется ли флажок, и если да снимите его еще проверить его

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="agreement" id="checkbox-3"/> 
 
<button id="btn-agree">I Agree</button> 
 
<button id="btn-notagree">Cancel</button> 
 

 
<script> 
 
$(document).ready(function() { 
 
    $('#btn-agree').click(function() { 
 
    if($('#checkbox-3').prop('checked')) 
 
    $('#checkbox-3').prop('checked',false); 
 
    else{ 
 
    $('#checkbox-3').prop('checked',true); 
 
    } 
 
    }); 
 
}); 
 
    </script>

0

Вы можете также использовать is(':checked'), чтобы проверить, является ли галочка или не проверена

$(document).ready(function() { 
 
    $('#btn-agree').click(function() { 
 
     if($("#checkbox-3").is(':checked')) 
 
     { 
 
      $("#checkbox-3").prop('checked',false); 
 
     }    
 
     else 
 
     { 
 
      $("#checkbox-3").prop('checked',true); 
 
     }      
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<input type="checkbox" name="agreement" id="checkbox-3"/> 
 
<button id="btn-agree">I Agree</button> 
 
<button id="btn-notagree">Cancel</button>

0
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type="checkbox" name="agreement" id="checkbox-3"/> 
<button id="btn-agree">I Agree</button> 
<button id="btn-notagree">Cancel</button> 

<script> 
$(document).ready(function() { 
    $('#btn-agree').click(function() { 
    $(this).prop('checked',true); 
    }); 
$('#btn-notagree').click(function() { 
    $(this).prop('checked',false); 
    }); 
}); 
    </script> 
+0

Почему оба привязки событий устанавливают prop на false? – dapidmini

+0

Пожалуйста, проверьте его сейчас. –

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