我有分支下拉效果(不确定名称)。我在javascript和jquery中不是很好但是我可以修改一点。并且凭借这些知识我做了这个效果。
您可以看到现场演示:http://saifraihan.webege.com/Branching%20New/branching.html
这是我的:
HTML
<form id="survey" action="#" method="post">
<div id="section">
<label for="Select">Select a step</label>
<select id="select" onchange="selection(this);">
<option value="none">
Input1
</option>
<option value="radio">
Radio1
</option>
</select>
</div>
<div id="section2" style="display:none;">
<input name="" type="text">
</div>
<div id="section5" style="display:none;">
<p>
Radio Step 1<br/>
<label>
<input type="radio" name="RadioGroup2" value="radio" id="RadioGroup2_0">
Radio</label>
<br>
<label>
<input type="radio" name="RadioGroup2" value="radio" id="RadioGroup2_1">
Radio</label>
<br>
</p>
</div>
</form>
JS:
var sections ={
'none': 'section2',
'radio': 'section5'
};
var selection = function(select) {
for(i in sections)
document.getElementById(sections[i]).style.display = "none";
document.getElementById(sections[select.value]).style.display = "block";
}
此示例在FF,Chrome和Opera中运行良好。但问题是,它不适用于任何版本的IE。我不知道为什么。因为我在javascripts中很弱,所以我不知道为什么这不是在IE中运行。可以有任何解决方案吗?如果IT能够很好。
先谢谢。
答案 0 :(得分:1)
将您的活动绑定在这样:
document.getElementById('select').addEventListener('change', function() { selection(this) });
这似乎在IE(10)中解决了我的问题。如果您需要支持8或之前:在这些版本的IE中使用attchEvent
附加事件。所以你也需要编写那个逻辑(或者你可以使用jQuery或其他一些库为你处理crossbrowser的东西)。