我的代码有问题,我无法解决。因此,我有一个注册表格,该表格包含不同的用户注册(私人和公司注册),并且它们是输入类型的单选,因此,当您选择私有时,它会显示表格的某些部分,如果您选择公司,则会显示某些部分。我的问题是“性别”,在“私人”中有输入类型单选的“男性/女性/其他”选项,但是当您选择“公司”时(不知道如何用英语翻译),是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);
});
});
如果有人知道如何更改它,我将非常感谢。
答案 0 :(得分:0)
仅选择第一个可见的对象,然后在其后中断。
// 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
})
编辑:包括Barmar的注释并删除\
编辑:添加JS小提琴https://jsfiddle.net/1xkt2mdL/(https://jsfiddle.net/1xkt2mdL/#&togetherjs=PFw0LUG1JH)