Есть ли способ сделать несколько входов радио проверено? - PullRequest
1 голос
/ 11 июня 2019

У меня проблема с кодом, и я не могу найти решение.Итак, у меня есть форма регистрации, форма содержит различную регистрацию пользователей (частную и корпоративную), и это радио типа ввода, поэтому, когда вы выбираете частную, она показывает некоторые части формы, а если вы выбираете компанию, она показывает некоторые части.Моя проблема с «пол», в «Частном» есть мужской / женский / другие варианты с типом радио, но когда вы выбираете компанию, есть (не знаю, как перевести это на английский) Firma / Öffentlich / Verein.Они используют одно и то же имя (bestellung [anrede]), но не одинаковые значения, и оно отличается при выбранной регистрации пользователя.

Итак, я попытался выбрать первого дочернего элемента, который отображается с помощью jQuery, но он выбирает только в «Приватный», когда я переключаюсь в «Компания», ничего не выбирается.


<fieldset class="hide_if_firma">
   <legend style="font-size: 14px; margin-bottom: 6px; border: none;"><?=$sprachdatei['formlabels']['anrede']?>*</legend>
   <?php foreach($sprachdatei['checkout_anreden_privat'] as $kennung=>$name): ?>
      <input id="<?=$name?>" class="rwd-radio" type="radio" name="bestellung[anrede]" value="<?=$name?>">
      <label style="font-size: 14px; font-weight: normal; margin-right: 5px;" for="<?=$name?>"><span></span><?=$name?></label>
   <?php endforeach; ?>
</fieldset>

<fieldset class="show_if_firma">
   <legend style="font-size: 14px; margin-bottom: 6px; border: none;"><?=$sprachdatei['formlabels']['anrede']?>*</legend>
   <?php foreach($sprachdatei['checkout_anreden_firma'] as $kennung=>$name): ?>
      <input id="<?=$name?>" class="rwd-radio" type="radio" name="bestellung[anrede]" value="<?=$name?>">
      <label style="font-size: 14px; font-weight: normal; margin-right: 5px;" for="<?=$name?>"><span></span><?=$name?></label>
   <?php endforeach; ?>
</fieldset>

$(document).ready(function() {
   $('fieldset .hide_if_firma').each(function () {
      $('input:radio[class=rwd-radio]:nth(0)').prop('checked', true);
   });
   $('fieldset .show_if_firma').each(function () {
      $('input:radio[class=rwd-radio]:nth(3)').prop('checked', true);
   });
});

Если у кого-нибудь есть идеи, как это изменить, я был бы очень признателен.

1 Ответ

0 голосов
/ 11 июня 2019

Выберите только первый видимый и перерыв после этого.

// loop over all visible inputs with the given name
$('input[name="bestellung[anrede]"]:visible').each(function(){
  // take element and set it to checked
  $(this).prop('checked', true);
  // this is a "break" for this loop (btw a "return true" == continue)
  return false
})

РЕДАКТИРОВАТЬ: включить комментарий Бармара и удалить \

РЕДАКТИРОВАТЬ: Добавить JS Fiddle https://jsfiddle.net/1xkt2mdL/ (https://jsfiddle.net/1xkt2mdL/#&togetherjs=PFw0LUG1JH)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...