Javascript selectedindex不工作
我有一个代码,当在下拉框中选择“是”时,应该允许我显示div id='yestext'。然而,这是行不通的。我不知道什么不起作用,但有些东西显然不起作用 JSJavascript selectedindex不工作,javascript,html,Javascript,Html,我有一个代码,当在下拉框中选择“是”时,应该允许我显示div id='yestext'。然而,这是行不通的。我不知道什么不起作用,但有些东西显然不起作用 JS function text() { if (document.getElementById("text").selectedIndex == "0") { document.getElementById("yestext").style.display = "block"; }
function text() {
if (document.getElementById("text").selectedIndex == "0") {
document.getElementById("yestext").style.display = "block";
}
else {
document.getElementById("yestext").style.display = "none";
}
}
HTML
<select id='text' onchange='text()'>
<option value="0">Yes</option>
<option value="1">No</option>
</select>
<div style='display:none;' id='yestext'>
What text would you like displayed?
<input type='text' class='text' name='type' value size='20'/>
</div>
对
不
您希望显示什么文本?
下面是包含我的代码的JSFIDLE:您的代码很好。您将JSFIDLE设置为在
OnLoad
中运行代码,它包装了text()
函数,因此它没有将其添加到全局命名空间中。我通过将js移动到头部来修复它,现在它可以工作了
当html完成加载时,我还调用了text()
函数,以考虑浏览器记住最后一个选择
这是更新后的代码。
看起来效果不错。。。最初的一个只是有一个时间问题。你说的“时间”是什么意思?在库下拉列表下面,你可以找到另一个下拉列表,你可以用它为脚本选择一个位置。在您的小提琴中,您选择了“
Onload
”,这不适用于JSFIDLE上的globals。在我的小提琴中,我选择了“无缠绕头”
”。这里还有一个答案,其中建议您删除0
周围的引号,因为selectedIndex
返回一个数字。好的,我知道了,但是如何在原始代码中更改它?如果您希望在加载时显示额外的div,那么您需要首先调用text()函数。您的代码仅在onchange事件上更新