Может кто-нибудь объяснить, почему функция, связанная с переключателем "да", не срабатывает при нажатии кнопки "тест"?
Это потому, что вы не вызываете enable_carname()
функция, то есть - вы на самом деле не меняете кнопку «Да» на «проверено».Согласно вашей настройке, решение будет таким:
function disable_carname() {
document.getElementById("carname").disabled=true;
}
function enable_carname() {
document.getElementById("carname").disabled=false;
}
function set_yes_radio() {
document.getElementById("yes").checked=true;
enable_carname(); //invoking the function which will actually enable 'carname' field
}
Но я бы сказал, что весь подход, который вы здесь пробовали, довольно запутанный и может только осложнить вашу жизнь.Мое решение - это просто патч для предложенного решения.
Может быть, попытаться подумать о состоянии по умолчанию.Допустим, кнопка «нет» по умолчанию включена и поле carname
отключено.Вместо кнопки test
это может быть submit
.Я представляю, что это часть опроса или нечто подобное.Если вы хотите попробовать другой подход, попробуйте и дайте мне знать, если вам нужна дополнительная помощь.
Кстати, отметьте как установить атрибут для элемента DOM вместо жесткого-Кодировать это в HTML.Конечно, вы также можете удалить его аналогичным образом.
Примечание: текст carname
должен быть <label>
для поля ввода 'carname'. MDN: этикетка