Пожалуйста, проверьте следующий вывод консоли, обратите внимание, что первый вход проверил атрибут и выбран:JQuery: проверено не работаешь с вводом начальных (атрибут HTML) радио
Вы можете видеть, у меня есть 2 радио input
s, 1 checked
, однако ни селектор, ни prop
, ни is
не работают. Код работает правильно, если я вручную нажму на одно из радио. Вот мой HTML:
<div class="col-sm-6">
Type:
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="generator-type" id="opt-type-passphrase" value="0" autocomplete="off" checked>
Passphrase
</label>
<label class="btn btn-default">
<input type="radio" name="generator-type" id="opt-type-password" value="1" autocomplete="off">
Password
</label>
</div>
</div>
Почему код не работает, когда страница загружается, когда я не нажал никакое радио? Есть ли способ исправить это?
EDIT: Нашел проблему, у меня есть этот код в загрузке страницы:
$("input[name='generator-type'][value=" + this.Options.Type + "]").prop("checked", "");
Правильное решение с помощью:
.prop("checked", true)
Но может кто-нибудь объяснить, как это работает? Почему существует атрибут checked
, но функция prop
по-прежнему ложна?
@HectorBarbossa Спасибо, я нашел источник проблемы, но до сих пор не понимаю, как работают 'prop' и' is'. Не могли бы вы объяснить это? –
Ваш вопрос относительно того, как это работает, описан в [документации] (http://api.jquery.com/prop/). Один ключевой аспект: атрибут HTML устанавливает только * начальное значение свойства. Если он изменяется с помощью кода или взаимодействия с пользователем, HTML не изменяется, но свойство делает. –