我编写了一些javascript来切换字段集的选项" ik wil mijn aanmelden"使用fieldset" project"作为第一个radiobutton和fieldset" stage"的选择对于第二个无线电按钮。当我在浏览器中运行它时,它将显示" project"(第一个radiobutton)但不显示" stage"当我点击第二个radiobutton。怎么了?提前谢谢。
//windows onload zodat je eerst je html inlaadt
window.onload = function() {
'use strict';
var projecttoggle, stagetoggle;
//queryselector returns eerste element van het document met specifieke selector
projecttoggle = document.querySelector('fieldset:nth-of-type(3)');
stagetoggle = document.querySelector('fieldset:nth-of-type(4)');
//classList returns a token list of the class attribute of the element
//queryselector returns eerste element van het document met specifieke selector
//verstoppen ---- met toggle voor visibility van het element
projecttoggle.classList.add('projecttoggleuit');
stagetoggle.classList.add('stagetoggleuit');
//eerste radio button krijg je onclick eerste element
document.querySelector('input[type="radio"]').onclick = function(){
projecttoggle.classList.add('projecttoggleaan');
stagetoggle.classList.remove('stagetoggleaan');
};
//last of type van radio button aanklikken voor tweede gekozen element
document.querySelector('input[type="radio"]:last-of-type').onclick = function(){
projecttoggle.classList.remove('projecttoggleaan');
stagetoggle.classList.add('stagetoggleaan');
};
};

<form>
<fieldset>
<legend>Contactgevens</legend>
<label for="naam">naam</label>
<input type="text" id="naam" required placeholder="naam">
<!--input type text is wat je moet invullen, email tel herkent de browser, vastgestelde input types in html5-->
<label for="bedrijf">bedrijf</label>
<input type="text" id="bedrijf">
<label for="street">straatnaam</label>
<input type="text" id="street">
<label for="number">huisnummer</label>
<input type="text" id="number">
<label for="zip">postcode</label>
<input type="text" id="zip" required placeholder="1234AB">
<label for="stad">stad</label>
<input type="text" id="stad">
<label for="tel">telefoonnummer</label>
<input type="tel" id="tel" required placeholder="1234123456">
<label for="email">email</label>
<input type="email" id="email" required>
</fieldset>
<fieldset>
<legend>Ik wil mijn aanmelden:</legend>
<input type="radio" name="waarom" value="waarom" class="project">voor een project <br>
<input type="radio" name="waarom" value="waarom" class="stagebedrijf">als stagebedrijf
</fieldset>
<fieldset>
<legend>Project</legend>
<label for="Titel">titel</label>
<input type="text" id="Titel" required>
<label for="Opdrachtomschrijving">opdrachtomschrijving</label>
<input type="text" id="Opdrachtomschrijving" required>
<label for="Doelgroepomschrijving">doelgroepomschrijving</label>
<input type="text" id="Doelgroepomschrijving" required>
<label for="Doelstellingenintentievanhetproject">Doelstellingenintentievanhetproject</label>
<input type="text" id="Doelstellingenintentievanhetproject" required>
<label for="Looptijd">Looptijd</label>
<input type="text" id="Looptijd">
<label for="Deadline">Deadline</label>
<input type="datetime-local" id="Deadline" required>
</fieldset>
<fieldset>
<legend>Stage</legend>
<label for="Geschiktvoor">geschiktvoor</label>
<select id="Geschiktvoor">
<option>tweedejaars studenten</option>
<option>afstudeer studenten</option>
<option>onbekend studenten</option>
</select>
</fieldset>
<fieldset>
<legend>Geschikt voor</legend>
<label for="kiesjaar">jaar student</label>
<select id="kiesjaar">
<option>eerstejaars studenten</option>
<option>tweedejaars studenten</option>
<option>derdejaars studenten</option>
<option>afstudeer studenten</option>
<option>onbekend</option>
</select>
<label for="opmerkingen">opmerkingen</label>
<input type="text" id="opmerkingen">
</fieldset>
<fieldset>
<legend>Hoe lang is de stage?</legend>
<label for="aantalweken">aantalweken</label>
<select id="aantalweken">
<option>10 weken</option>
<option>10 weken</option>
</select>
<label for="beschrijvingstagewerkzaamheden"> beschrijving stagewerkzaamheden</label>
<input type="text" id="beschrijvingstagewerkzaamheden">
</fieldset>
<fieldset>
<legend>Beschrijving stagebedrijf</legend>
<label for="bedrijfsnaam">bedrijfsnaam</label>
<input type="text" id="bedrijfsnaam" required>
<label for="straatnaam">straatnaam</label>
<input type="text" id="straatnaam">
<label for="huisnummer">huisnummer</label>
<input type="text" id="huisnummer">
<label for="postcodebedrijf">postcode</label>
<input type="text" id="postcodebedrijf" required placeholder="1234AB">
<label for="plaats">plaats</label>
<input type="text" id="plaats">
<label for="sector">sector</label>
<input type="text" id="sector" required>
<label for="corebusiness">core business</label>
<input type="text" id="corebusiness" required>
<label for="opmerking">opmerking</label>
<input type="text" id="opmerking">
</fieldset>
<input type="submit">
</form>
&#13;
答案 0 :(得分:1)
显示/隐藏的两个不同的类令人困惑。我只使用一个类show
:
.show {
display: block;
}
然后以这种方式切换:
//eerste radio button krijg je onclick eerste element
document.querySelector('input[type="radio"]').onclick = function () {
projecttoggle.classList.add('show');
stagetoggle.classList.remove('show');
};
//last of type van radio button aanklikken voor tweede gekozen element
document.querySelector('input[type="radio"]:last-of-type').onclick = function () {
projecttoggle.classList.remove('show');
stagetoggle.classList.add('show');
};