Я уже видел эту нить: Add required attribute when radio is checked, однако ответы не нацелены на идентификатор конкретного переключателя, а только имя. Я не могу добиться того, что хочу, используя подход имен, поскольку имена должны быть одинаковыми для моих параметров радио, см. HTML, чтобы понять, что я имею в виду.Добавить обязательный атрибут, если поля видны
В приведенном ниже коде показан переключатель с двумя параметрами. Он показывает #ifYes div ТОЛЬКО, когда установлен параметр #yesCheck радио. Он скрывается, если проверен #noCheck.
Моя проблема
В то же время #ifYes
раскрывается я хочу, чтобы добавить необходимый атрибут для 2 входов в #ifYes
(#businessname and #regnum
). required
атрибут также удаляется, когда #ifYes
скрыт.
HTML
<label>Are you a business or consumer?</label>
<span>Business</span><input type="radio" onclick="javascript:yesnoCheck();" value="Business" name="customer[note][Business or Consumer?]" id="yesCheck" required/><br/>
<span>Consumer</span><input type="radio" onclick="javascript:yesnoCheck();" value="Consumer" name="customer[note][Business or Consumer?]" id="noCheck" /><br/>
<div id="ifYes">
<label for="businessname">Business name</label>
<input id="businessname" type="text" name="customer[note][Business Name]" placeholder="Business Name" />
<label for="regnum">Business Registration No.</label>
<input id="regnum" type="text" name="customer[note][Business Reg No.]" placeholder="Business Registration No." />
</div>
JS
function yesnoCheck() {
if($('#yesCheck').is(':checked')) {
$('#ifYes').addClass('yarp');
$('#businessname').attr('required');
} else {
$('#ifYes').removeClass('yarp');
$('#businessname').removeAttr('required');
}
}
Это сделало трюк. Спасибо за объяснение – egr103