Я пытаюсь проверить и снять флажок bootstrap. Я использую тест var. какое значение я получаю от БД. Если значение равно нулю (0), я хочу снять флажок, и если значение равно одному (1), я хочу установить флажок. это выглядит довольно просто.Как снять флажок Bootstrap
Jquery
if (test == 0) {
$('#myCheck').prop('checked', false);
alert("I am false");
} else {
$('#myCheck').prop('checked', true);
alert("I am True");
}
HTML
<div class="row">
<div class="col-sm-2">
<label class="control-label" for="pwd">My checkbox:</label>
</div>
<div class="col-sm-1">
<span class="button-checkbox">
<input type="checkbox" class="hidden" checked id="myCheck" />
<button type="button" class="btn-chk" data-color="success" ></button>
</span>
</div>
</div>
Когда test
равен нулю (0), он приходит в if block
и я получаю предупредительное сообщение I am false
и когда это правда, я приходите в else block
Получаю сообщение I am true
, но флажок всегда проверяется. Где я ошибаюсь? Буду признателен за любую помощь.
Update 1:
Беллоу код, что я использую для настройки кнопки флажок
$(function() {
$('.button-checkbox').each(function() {
// Settings
var $widget = $(this),
$button = $widget.find('button'),
$checkbox = $widget.find('input:checkbox'),
color = $button.data('color'),
settings = {
on: {
icon: 'glyphicon glyphicon-check'
},
off: {
icon: 'glyphicon glyphicon-unchecked'
}
};
// Event Handlers
$button.on('click', function() {
$checkbox.prop('checked', !$checkbox.is(':checked'));
$checkbox.triggerHandler('change');
updateDisplay();
});
$checkbox.on('change', function() {
updateDisplay();
});
// Actions
function updateDisplay() {
var isChecked = $checkbox.is(':checked');
// Set the button's state
$button.data('state', (isChecked) ? "on" : "off");
// Set the button's icon
$button.find('.state-icon')
.removeClass()
.addClass('state-icon ' + settings[$button.data('state')].icon);
// Update the button's color
if (isChecked) {
$button
.removeClass('btn-default-chk')
.addClass('btn-' + color + ' active');
}
else {
$button
.removeClass('btn-' + color + ' active')
.addClass('btn-default-chk');
}
}
// Initialization
function init() {
updateDisplay();
// Inject the icon if applicable
if ($button.find('.state-icon').length == 0) {
$button.prepend('<i class="state-icon ' + settings[$button.data('state')].icon + '"></i> ');
}
}
init();
});
});
Я просто использовал свой код и его работы хорошо для меня .. смотрите здесь https://jsfiddle.net/zsgh9umn/ –
Вы обертываете свои js в 'ready'? это может быть до js, запущенного до загрузки dom. – BenG
То, как вы использовали, правильно и даже работает здесь для меня. Можете ли вы проверить, вызывает ли что-то внешнее это поведение для вас? –