Просто нужно подключить слушателя изменений, а затем показать скрыть в зависимости от вашего состояния (я включил JQuery просто для простоты, но вы могли бы использовать ваниль, без проблем):
На основании ваших комментариев, Я обновил фрагмент кода для обработки нескольких вопросов. Мне пришлось удалить поле «id», чтобы у вас не было дубликатов идентификаторов, и я нацелил текстовое поле через класс «.new» - хотя это работает для примера, это немного жестко с использованием .parent (). Parent () - но этого достаточно, чтобы помочь вам. Кроме того, необходимо присвоить полю «имя» переключателей другой идентификатор для каждой группы.
$(".new").hide();
$("input").on("change",handleChange);
function handleChange(e){
var rating = $(e.currentTarget).val();
var $_textBox = $(e.currentTarget).parent().parent().next(".new");
if(rating < 4 && $_textBox){
$_textBox.show();
}else{
$_textBox.hide();
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li>
<span class="survey-question">QUESTION 1: How would you rate your experience with online shopping?</span>
<div class="survey-answer">
<label>
<input class="radio-button" type="radio" name="required" value="1"> Horrible
</label>
<label>
<input class="radio-button" type="radio" name="required" value="2"> Bad
</label>
<label>
<input class="radio-button" type="radio" name="required" value="3"> So-So
</label>
<label>
<input class="radio-button" type="radio" name="required" value="4"> Great
</label>
<label>
<input class="radio-button" type="radio" name="required" value="5" checked> Awesome!
</label>
</div>
<!-- If an answer <= "So-So or less", display: -->
<div class="new">
<span class="survey-question">How can we improve?</span>
<textarea class="col-md-10" rows="3" id="answer" placeholder="Comments..."></textarea>
</div>
</li>
<br>
<li>
<span class="survey-question">QUESTION 2: How would you rate your experience with online shopping?</span>
<div class="survey-answer">
<label>
<input class="radio-button" type="radio" name="required2" value="1"> Horrible
</label>
<label>
<input class="radio-button" type="radio" name="required2" value="2"> Bad
</label>
<label>
<input class="radio-button" type="radio" name="required2" value="3"> So-So
</label>
<label>
<input class="radio-button" type="radio" name="required2" value="4"> Great
</label>
<label>
<input class="radio-button" type="radio" name="required2" value="5" checked> Awesome!
</label>
</div>
<!-- If an answer <= "So-So or less", display: -->
<div class="new">
<span class="survey-question">How can we improve?</span>
<textarea class="col-md-10" rows="3" id="answer" placeholder="Comments..."></textarea>
</div>
</li>