Reputation: 1
My problem is that display:none doesn't work in some browsers. The function will be executed when i select a option in a selection. It works in firefox but not in safari. Must i add Touch events. Acctually i think that when i add a option in a selection, i won't be shown in the browser.
I hope somebody can help me...
Here my script:
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<div class="col-12">
<h3>Anmeldung für Workshops</h3></div><div class="col-7">
<select name="WS1" id="WS1">
<option value="" onclick="SelectedOption()">Choose Option</option>
<option value="SelectedOption1" id="SelectedOption1" onclick="SelectedOption1()">SelectedOption1</option>
<option value="SelectedOption2" id="SelectedOption2" onclick="SelectedOption2()">SelectedOption2</option>
<option value="SelectedOption3" id="SelectedOption3" onclick="SelectedOption3()">SelectedOption3</option>
</select>
</div>
<div class="col-5">
<select name="WST1">
<option value="">Uhrzeit</option>
<!--Bastel-times-->
<option value="11:00" id="SelectedOption1_1100" style="display:none;">11:00</option>
<option value="12:00" id="SelectedOption1_1200" style="display:none;">12:00</option>
<option value="13:00" id="SelectedOption1_1300" style="display:none;">13:00</option>
<option value="14:30" id="SelectedOption1_1430" style="display:none;">14:30</option>
<!--Wander-times-->
<option value="12:00" id="SelectedOption2_1200" style="display:none;">12:00</option>
<option value="14:00" id="SelectedOption2_1400" style="display:none;">14:00</option>
<!--Malen-times-->
<option value="12:30" id="SelectedOption3_1230" style="display:none;">12:30</option>
<option value="13:00" id="SelectedOption3_1300" style="display:none;">13:00</option>
<option value="13:30" id="SelectedOption3_1330" style="display:none;">13:30</option>
</select>
</div>
<!-- Scripts -->
<script>
var WST1_List = ['SelectedOption1_1100', 'SelectedOption1_1200', 'SelectedOption1_1300', 'SelectedOption1_1430', 'SelectedOption2_1200', 'SelectedOption2_1400', 'SelectedOption3_1230', 'SelectedOption3_1300', 'SelectedOption3_1330']
function SelectedOption1(){
for( let i = 0; i <= WST1_List.length; i++){
var elem = document.getElementById(WST1_List[i]);
if(WST1_List[i] == 'SelectedOption1_1100' || WST1_List[i] == 'SelectedOption1_1200' || WST1_List[i] == 'SelectedOption1_1300' || WST1_List[i] == 'SelectedOption1_1430'){
elem.style.display = 'inline';
}
else{
elem.style.display = 'none';
}
}
}
function SelectedOption2(){
for( let i = 0; i <= WST1_List.length; i++){
var elem = document.getElementById(WST1_List[i]);
if(WST1_List[i] == 'SelectedOption2_1200' || WST1_List[i] == 'SelectedOption2_1400'){
elem.style.display = 'inline';
}
else{
elem.style.display = 'none';
}
}
}
function SelectedOption3(){
for( let i = 0; i <= WST1_List.length; i++){
var elem = document.getElementById(WST1_List[i]);
if(WST1_List[i] == 'SelectedOption3_1230' || WST1_List[i] == 'SelectedOption3_1300' || WST1_List[i] == 'SelectedOption3_1330'){
elem.style.display = 'inline';
}
else{
elem.style.display = 'none';
}
}
}
function SelectedOption(){
for( let i = 0; i <= WST1_List.length; i++){
var elem = document.getElementById(WST1_List[i]);
elem.style.display = 'none';
}
}
</script>
</body></html>
Upvotes: 0
Views: 437
Reputation: 1182
Option menu hidden does not work on some mobile browsers. Use condition(JS and CSS class) to hide or see the option.
Upvotes: 1
Reputation: 1113
For HTML5, you can use the 'hidden' attribute.
<option hidden>Hidden option</option>
You can try this
<!DOCTYPE html>
<html>
<body>
<h1>The option element</h1>
<label for="cars">Choose a car:</label>
<select id="cars">
<option hidden value="volvo">Volvo</option>
<option hidden value="saab">Saab</option>
<option hidden value="opel">Opel</option>
<option hidden value="audi">Audi</option>
</select>
</body>
</html>
Upvotes: 0