@RoadMoscow

Как скрыть/показать div по клику?

Здравствуйте. Есть такой код, как смог накостылить:

$(function() {
    $("#legal-2").click (function(){
      $("#file").stop().slideToggle(300); 
      $(this).next("#file").stop().slideUp(300);
    });
    $("#legal-1").click (function(){
      $("#file").stop().slideToggle(300); 
      $(this).next("#file").stop().slideUp(300);
    });
});


Идея такая, если клик по #legal-2, тогда показываем #file, а если клик по #legal-1 скрываем #file, так и работает, только повторный клик по #legal-1 открывает #file. ВОПРОС: как исправить, чтобы #file показывался лишь по клику на #legal-2?

Такой html

<div class="order__form-contacts">
						<div class="order__form-contacts--head">Контакты</div>
						<div class="order__form-label">
							<div class="order-radio">
								<label>
									<input type="radio" name="legal-status" value="1" id="legal-1" checked="">
									<span>Физическое лицо</span>
								</label>
							</div>
							<div class="order-radio">
								<label>
									<input type="radio" name="legal-status" value="2" id="legal-2">
									<span>Юридическое лицо</span>
								</label>
							</div>
						</div>
						<div class="order__form-input">
						                                    <input type="text" id="receiver" placeholder="Получатель" name="receiver" value="" class="required">
                                                            <input type="text" id="phone" placeholder="Телефон" name="phone" value="" class="">
                                                            <input type="text" id="email" placeholder="Email" name="email" value="" class="required">
                            						</div>
						<div class="order__form-file" id="file" style="display: none;">
							<label class="order__form-file--file">
								Прикрепить фаил с реквизитами
								<input type="file" multiple="">
							</label>
						</div>
					</div>
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
0xD34F
@0xD34F
$('.order__form-contacts').on('change', function() {
  const
    $form = $(this),
    val = $form.find('[name="legal-status"]:checked').val();

  $form.find('.order__form-file').slideToggle(val === '2');
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Do-oN
$(function() {
    $("#legal-2").click (function(){ 
      $("#file").slideDown(300);
    });
    $("#legal-1").click (function(){ 
      $("#file").slideUp(300);
    });
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы