下拉JavaScript的onClick事件不触发Chrome/IE
Dropdown JavaScript onClick event not firing in Chrome/IE
这在chrome和IE中不起作用。我不太擅长javascript,所以我不知道该找什么。那么我该怎么做才能让它成功呢?我一直在这里寻找解决办法,但是没有运气。
Javascript代码:
function show(id) {
var element = document.getElementById(id);
element.style.display = "";
}
function hide(id) {
var element = document.getElementById(id);
element.style.display = "none";
}
function hideAll() {
hide('child1');
hide('child2');
hide('child3');
hide('child4');
hide('child5');
}
HTML代码
<select name="parent" id="parent">
<option value="0" selected>Please choose</option>
<option value="1" onclick="hideAll(); show('child1');">Parent 1</option>
<option value="2" onclick="hideAll(); show('child2');">Parent 2</option>
<option value="3" onclick="hideAll(); show('child3');">Parent 3</option>
<option value="4" onclick="hideAll(); show('child4');">Parent 4</option>
<option value="5" onclick="hideAll(); show('child5');">Parent 5</option>
</select>
</p>
<select name="child1" id="child1" style="display:none">
<option value="1">Child1 - 1</option>
<option value="2">Child1 - 2</option>
<option value="3">Child1 - 3</option>
<option value="4">Child1 - 4</option>
<option value="5">Child1 - 5</option>
</select>
<select name="child2" id="child2" style="display:none">
<option value="1">Child2 - 1</option>
<option value="2">Child2 - 2</option>
<option value="3">Child2 - 3</option>
<option value="4">Child2 - 4</option>
<option value="5">Child2 - 5</option>
</select>
<select name="child3" id="child3" style="display:none">
<option value="1">Child3 - 1</option>
<option value="2">Child3 - 2</option>
<option value="3">Child3 - 3</option>
<option value="4">Child3 - 4</option>
<option value="5">Child3 - 5</option>
</select>
<select name="child4" id="child4" style="display:none">
<option value="1">Child4 - 1</option>
<option value="2">Child4 - 2</option>
<option value="3">Child4 - 3</option>
<option value="4">Child4 - 4</option>
<option value="5">Child4 - 5</option>
</select>
<select name="child5" id="child5" style="display:none">
<option value="1">Child5 - 1</option>
<option value="2">Child5 - 2</option>
<option value="3">Child5 - 3</option>
<option value="4">Child5 - 4</option>
<option value="5">Child5 - 5</option>
</select>
你需要使用onchange而不是onclick
这是一个完整的解决方案,它不关心IDS是什么,只要父选择的值与要隐藏和显示的选择的id匹配
演示window.onload=function() {
document.getElementById("disc").onchange=function() {
hideAll(this);
var id = this.value;
if (id) show(id);
}
}
function show(id) {
var el = document.getElementById(id);
if (el) el.style.display = "block";
else alert("No such ID as "+id);
}
function hide(id) {
var el = document.getElementById(id);
el.style.display = "none";
}
function hideAll(sel) {
var allSels=document.getElementsByTagName("select");
for (var i=0;i<allSels.length;i++) {
if (allSels[i]!=sel) {
console.log(allSels[i].id)
allSels[i].style.display='none';
}
}
}
try this
<select name="parent" id="parent" onChange="showHide(this.id)">
function showHide(id)
{
hideAll();
var elementId = document.getElementById(id).value ;
document.getElementById("child"+elementId).style.display= "block";
}
相关文章:
- IE/Chrome中未定义的函数,但Firefox中没有
- 滚动在Chrome中有效,但在Firefox或IE中无效
- CKeditor预览插件.js,为Chrome和IE进行编辑.因为它拒绝CSS样式
- 如何编写在Chrome和IE中正常工作的JavaScript
- document.images未加载在chrome或firefox上,但已加载在IE上
- Javascript赢得'不能在IE上编译,但可以在Chrome上运行
- IE与Chrome的怪癖模式
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- Jquery selectmenu组合框在IE和Chrome中每当按钮打开时就会关闭
- 以下颜色更改功能在IE9和Firefox中运行良好,但在早期的IE或Chrome中则不然
- window.opener not working in chrome & IE
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- AngularJS$http.post没有'不适用于Chrome,仅适用于IE
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- Multi-platform (Chrome, IE, Firefox)
- Javascript在JS Fiddle中工作,但在Chrome / IE中不起作用
- jQuery:$.getJSON对Chrome/IE上的数据进行排序
- 输入元素在Firefox中没有定义,但在Chrome/IE中有
- 下拉JavaScript的onClick事件不触发Chrome/IE