HTML:
<label class="radio-inline">
<input type="radio" name="admin" value="t" id="adminTrue"> Да
</label>
<label class="radio-inline">
<input type="radio" name="admin" value="f" id="adminFalse"> Нет
</label>
JavaScript
$('#infoUser').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget)
var modal = $(this)
var admin = button.data('user-admin')
if (admin == 't') {
modal.find('input[id="adminTrue"]').attr('checked', 'checked');
} else {
modal.find('input[id="adminFalse"]').attr('checked', 'checked');
}
})
$('#infoUser').on('hide.bs.modal', function (event) {
var modal = $(this)
modal.find('input[name="admin"]').removeAttr('checked');
})
Браузеры отображают не правильно выделенные radio
, хотя есть анализировать код Firebug, то в DOM все правильно меняется.
Здесь можно посмотреть полный код с примером:
http://codepen.io/ArsenBespalov/full/eNOwRy/
Проблема первая. У вас переменная admin
undefined. Почему? Все из-за вашей невнимательности. У кнопки в примере есть атрибут data-user-id
и нет атрибута
data-user-admin
, который вы пытаетесь прочитать.
Проблема вторая. Невозможность повторной установки атрибута checked можно побороть следующим образом:
if (admin == 't') {
modal.find('input[id="adminTrue"]').trigger('click');
} else {
modal.find('input[id="adminFalse"]').trigger('click');
}
Протестировал несколько раз. С таким подходом выбранная радиокнопка всегда корректно отображается.
Устанавливать свойство checked
нужно через prop
$().prop('checked', true);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вопрос в следующемЕсть простой код в котром ajax обновляет блок div
Проблема не в коде! На этой ссылке мои json для тестa; мне не удается с jsona принять данныеМне кажется что я неправильно поднимаю на сервер