2014-10-30 3 views
-1

Я столкнулся с странной проблемой при попытке добавить функциональность jQuery, инициированную флажком. Мой флажок переключает проверенный атрибут, так как визуально галочка переключается при нажатии, но атрибут «checked» фактически никогда не изменяется.Checkbox checked attribute not toggling

Вот пример моего вопроса: http://jsfiddle.net/ez710gxL/3/

<input id="check_box_2" class="css-checkbox padding-left-3" type="checkbox" checked="checked" /> 
<label for="check_box_2" name="cb_lbl_2" class="css-label" style="margin-top:5px; margin-left:10px;">Show Note</label> 

Мой вопрос: Если проверяемый атрибут не меняется, как я могу использовать JQuery, чтобы определить, если флажок установлен или нет?

+0

Вы забыли добавить JQuery к вашей демонстрации, или это просто проблема HTML-типа? –

+0

Посмотрите на разветвленную скрипку: чтобы проверить использование флажка в использовании .prop() метод http://jsfiddle.net/143Lyhxo/ как @dave заявил в своем ответе –

+0

Извините @DavidThomas, я забыл добавить jQuery в демонстрационную версию. Я обновил его здесь: http://jsfiddle.net/ez710gxL/3/ – EricBellDesigns

ответ

1

Итак, по-видимому, этот вопрос не был с опорой/атр переключени «проверено», а обновление недвижимости при просмотре инструментов разработчика браузера. Когда я проверить флажок, проверенное свойство всегда остается «проверено», однако следующий код работает, чтобы определить, если флажок на самом деле проверки или нет (@ предложенного кода War10ck в):

$('#check_box_2').is(':checked') 
2

Использование JQuery .prop() вместо .attr()

Установите .prop("checked", true). Это одно из самых больших преимуществ .prop() по сравнению с .attr(), так как .prop() может устанавливать значения, не являющиеся строками.

Вот рабочий пример того, как использовать его:

setInterval(function() { 
 
    if ($("#chkBox1").prop("checked")) 
 
    $("#chkBox1").prop("checked", false); 
 
    else 
 
    $("#chkBox1").prop("checked", true); 
 
    }, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="checkbox" value="Test" id="chkBox1" checked />

+0

у вас должен быть кристальный глобус –

+0

@dave Я пробовал это без каких-либо успехов. – EricBellDesigns

+1

Давайте посмотрим ваш код. В вашей скрипке нет javascript или jQuery. Вы можете видеть в моем примере выше, как это работает – dave