如果选择了特定选项,我的下拉列表会使用Ajax
来显示字段。
HTML:
<select name="test" id="testID" onChange="myFunc()">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<div id="display"></div>
AJAX SCRIPT:
<script>
function myFunc() {
if(document.getElementById('testID').value == "3") {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("display").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "_ajax_test1.cfm", true);
xhttp.send();
}
else if(document.getElementById('testID').value == "2"){
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("display").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "_ajax_test2.cfm", true);
xhttp.send();
}
}
</script>
如果选择了option 2
或option 3
,它确实可以正常运行,但是当我点击option 1
后点击option 2
或{ {1}},最后加载的ajax选项仍然存在。
EG;
如果我点击option 3
然后点击option 2
,则选项1仍会显示option 1
应显示的内容。
那么如何让option 2
仅显示其内容而不显示option 1
或option 2
内容? (请注意,option 3
没有加载option 1
内容)
答案 0 :(得分:1)
为了简化代码,您有以下结构:
if(document.getElementById('testID').value == "3") {
// do something
} else if(document.getElementById('testID').value == "2") {
// do something else
}
那么当值等于1时会发生什么? 什么都没有。为了让事情发生,你必须编写代码来实现它:
if(document.getElementById('testID').value == "3") {
// do something
} else if(document.getElementById('testID').value == "2") {
// do something else
} else if(document.getElementById('testID').value == "1") {
// do something here too
}
你想要发生什么?听起来你想将“display”元素设置为空?因此,您当前将该元素设置为某事:
document.getElementById("display").innerHTML = this.responseText;
相反,将其设置为 nothing :
document.getElementById("display").innerHTML = "";