Ну, мой вопрос довольно прост и прямолинейный. Html для выпадающего списка достаточно просто, вот скрипт и html, которые я нашел использовать
<select id='combo'>
<option>Yes</option>
<option>No</option>
<option>other</option>
</select>
<input id='text1' style='display: none'/>
<input id='text2' style='display: none'/>
<script>
document.getElementById('combo').onchange = function() {
var display = this.selectedIndex == 2 ? "inline" : "none";
document.getElementById('text1').style.display = display;
document.getElementById('text2').style.display = display;
}
</script>
как я могу это применить? если, конечно, это даже работает...
благодаря
Вам нужно подождать, пока загрузится DOM. Если вы не будете ждать, пока он не будет загружен, document.getElementById('combo')
не вернет annything, и поэтому вы не будете связывать событие.
document.addEventListener("DOMContentLoaded", function(){
document.getElementById('combo').onchange = function() {
var display = this.selectedIndex == 2 ? "inline" : "none";
document.getElementById('text1').style.display = display;
document.getElementById('text2').style.display = display;
}
},false);
Вам нужно добавить событие после загрузки DOM.
window.onload = function()
{
document.getElementById('combo').onchange = function() {
var display = this.selectedIndex == 2 ? "inline" : "none";
document.getElementById('text1').style.display = display;
document.getElementById('text2').style.display = display;
}
}
или
document.addEventListener("DOMContentLoaded", function(event)
{
document.getElementById('combo').onchange = function()
{
var display = this.selectedIndex == 2 ? "inline" : "none";
document.getElementById('text1').style.display = display;
document.getElementById('text2').style.display = display;
}
});
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/DOMContentLoaded
Обратите внимание, как я удалил параметр OnLoad из jsFiddle, который добавляет обертку в заголовок (таким образом, он работает для парней в комментариях выше).