下拉列表更改事件直到第二个实例才触发
dropdown onchange event not firing until second instance
我遇到了最奇怪的问题,尽管我确定这很简单 - 我被难住了。 我有一个事件,它根据下拉菜单隐藏和显示div。 当我从菜单中选择一些东西时,它绝对什么都不做。 但是,如果我将其更改为第二个选择,它可以完美运行。 有人知道我搞砸了什么吗? 感谢您的任何和所有帮助。
function call1()
{
document.getElementById("quest1").onchange = function () {
alert("ON CHANGE FIRED");
var val = this.options[this.selectedIndex].value;
document.getElementById("area1z").style.display = (val == "0") ? "block" : "none";
document.getElementById("area1a").style.display = (val == "1") ? "block" : "none";
document.getElementById("area1b").style.display = (val == "2") ? "block" : "none";
document.getElementById("area1c").style.display = (val == "3") ? "block" : "none";
document.getElementById("area1d").style.display = (val == "4") ? "block" : "none";
};
}
<select id="quest1" onChange="call1()">
<option value=0></option>
<option value=1>Stretch (Maintaining a lifestyle choice for an amount of time) </option>
<option value=2>Sum (i.e. saving money, counting workouts, etc.</option>
<option value=3>Loss (i.e. Weightloss)</option>
<option value=4>None</option>
</select>
<div id=area1z style="display:none">Please Choose a Quest</div>
<div id=area1a style="display:none">Stretch</div>
<div id=area1b style="display:none">Sum</div>
<div id=area1c style="display:none">Loss</div>
<div id=area1d style="display:none">None</div>
从以下内容中删除onChange()
:
<select id="quest1" onChange="call1()">
这样写:
document.getElementById("quest1").onchange = function () {
alert("ON CHANGE FIRED");
var val = this.options[this.selectedIndex].value;
document.getElementById("area1z").style.display = (val == "0") ? "block" : "none";
document.getElementById("area1a").style.display = (val == "1") ? "block" : "none";
document.getElementById("area1b").style.display = (val == "2") ? "block" : "none";
document.getElementById("area1c").style.display = (val == "3") ? "block" : "none";
document.getElementById("area1d").style.display = (val == "4") ? "block" : "none";
};
例
<script>
function call1()
{
alert("ON CHANGE FIRED");
var val=document.getElementById("quest1").value;
alert(val);
document.getElementById("area1z").style.display = (val == "0") ? "block" : "none";
document.getElementById("area1a").style.display = (val == "1") ? "block" : "none";
document.getElementById("area1b").style.display = (val == "2") ? "block" : "none";
document.getElementById("area1c").style.display = (val == "3") ? "block" : "none";
document.getElementById("area1d").style.display = (val == "4") ? "block" : "none";
}
</script>
<select id="quest1" onChange="call1()">
<option value="0"></option>
<option value="1">Stretch (Maintaining a lifestyle choice for an amount of time) </option>
<option value="2">Sum (i.e. saving money, counting workouts, etc.</option>
<option value="3">Loss (i.e. Weightloss)</option>
<option value="4">None</option>
</select>
<div id="area1z" style="display:none">Please Choose a Quest</div>
<div id="area1a" style="display:none">Stretch</div>
<div id="area1b" style="display:none">Sum</div>
<div id="area1c" style="display:none">Loss</div>
<div id="area1d" style="display:none">None</div>
这是您正在尝试做的演示。
要么从代码中删除"onchaange",要么删除"document.getElementById("quest1").onchange = function () {}"。
document.getElementById("quest1").onchange = function () {
alert("ON CHANGE FIRED");
var val = this.options[this.selectedIndex].value;
document.getElementById("area1z").style.display = (val == "0") ? "block" : "none";
document.getElementById("area1a").style.display = (val == "1") ? "block" : "none";
document.getElementById("area1b").style.display = (val == "2") ? "block" : "none";
document.getElementById("area1c").style.display = (val == "3") ? "block" : "none";
document.getElementById("area1d").style.display = (val == "4") ? "block" : "none";
};
JSFIDDLE 链接:http://jsfiddle.net/2M74g/1/
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 为什么不'在JQuery中找到第二个css选择器的工作
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- CORS-重定向到第二个GET正在接收的页面
- 正则表达式与数字中的第二个点匹配
- 如何在react js中移动第二个组件
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 关闭第二个事件源上的第一个事件源's onopen方法
- D3从嵌套的JSON中绘制第二个圆环图
- IE11中的第二个调用取消了第一个Fetch API调用
- 为什么我的Mongoose DB模式之一可能是“;强制转换为未定义的“;当它的实例被放置在第二个模式中时
- MyClass.prototype.settings={}被第二个实例化覆盖
- Jquery插件使用第二个实例's选项
- 为什么e.fn.e.init或x.fn.x.init(chrome调试器中的jQuery实例名称)中有第二个e或x
- 下拉列表更改事件直到第二个实例才触发
- 运行 AJAX 函数的多个实例 - 仅第二个实例更新
- css中类的第二个实例的快捷方式
- 如何在Mootools fireEvent函数的第二个参数中访问对象实例
- jQueryUI datepicker -当show()被调用时,第二个实例闪烁然后消失
- Reg表达式-在javascript中,我如何获得第二个实例