当选择了选项时,javascript显示隐藏的div

twi*_*igg 21 html javascript

好吧,我一直在寻找答案,这样一段时间,但一切我遇到(JavaScript的搜索,即使)想出了jQuery的!没有人再使用普通的javascript了吗?!?

所以我想要的是,我有一个下拉列表(选择多个选项).当选择某个选项时,我想要显示隐藏的div.

<select id="test" name="form_select">
   <option value="0">No</option>
   <option value ="1" onClick"showDiv()">Yes</option>
</select>
<div id="hidden_div" style="display: none;">Hello hidden content</div>
Run Code Online (Sandbox Code Playgroud)

然后我用这个javascript代码尝试它:

function showDiv(){
   document.getElementById('hidden_div').style.display = "block";
}
Run Code Online (Sandbox Code Playgroud)

我猜我的问题是我的选项中的onClick触发器,但我不确定还有什么用?或者我可以完全关闭这个(请注意自己获得一本好的javascript书!)

Mat*_*hai 32

试试这个:

function showDiv(divId, element)
{
    document.getElementById(divId).style.display = element.value == 1 ? 'block' : 'none';
}
Run Code Online (Sandbox Code Playgroud)
#hidden_div {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)
<select id="test" name="form_select" onchange="showDiv('hidden_div', this)">
   <option value="0">No</option>
   <option value="1">Yes</option>
</select>
<div id="hidden_div">This is a hidden div</div>
Run Code Online (Sandbox Code Playgroud)

  • 最好在页面首次加载时调用showDiv()函数。用户可能正在重新加载先前选择了“是”选项的页面。 (2认同)
  • @Matei Mihai 你好,如果我们有更多选项想要禁用 div 该怎么办?就像我们有 3 个选项,选择其中 2 个将禁用 div。希望您能回复,提前谢谢您。 (2认同)

Dan*_*mms 14

尝试处理更改事件select并使用this.value以确定它是否为"是".

的jsfiddle

JS

document.getElementById('test').addEventListener('change', function () {
    var style = this.value == 1 ? 'block' : 'none';
    document.getElementById('hidden_div').style.display = style;
});
Run Code Online (Sandbox Code Playgroud)

HTML

<select id="test" name="form_select">
   <option value="0">No</option>
   <option value ="1">Yes</option>
</select>

<div id="hidden_div" style="display: none;">Hello hidden content</div>
Run Code Online (Sandbox Code Playgroud)


小智 6

我认为这是合适的:

<select id="test" name="form_select" onchange="showDiv(this)">
   <option value="0">No</option>
   <option value="1">Yes</option>
</select>
<div id="hidden_div" style="display:none;">Hello hidden content</div>

<script type="text/javascript">
function showDiv(select){
   if(select.value==1){
    document.getElementById('hidden_div').style.display = "block";
   } else{
    document.getElementById('hidden_div').style.display = "none";
   }
} 
</script>
Run Code Online (Sandbox Code Playgroud)

试试这个,它会完美的工作.谢谢