我需要修改脚本才能执行以下操作:
如果从下拉列表中"sbdomain"中选择的值,则在页面重新加载后隐藏div
"sbdomainSubGroup"和"sbdomainSubGroups"。
如果重新加载页面时从"sbdomain"下拉列表中选择了"是",则显示div
"sbdomainSubGroup"。此外,保留text
字段"业务"价值。
如果在重新加载页面时从"sbdomain"下拉列表中选择了"否",则显示div
"sbdomain子组"。还保留text
字段"业务2"值。
我知道可以使用localStorage
或cookies
来实现这一点,但我是JavaScript/JQuery的新手。
如果我能坚持使用 JavaScript 来完成这项工作,那就太好了。
window.onload = showHide;
function showHide(){
var el = document.getElementById("sbdomain");
var selectedVal = el.options[el.selectedIndex].value;
var subGroupEl = document.getElementById("SubGroup").getElementsByTagName("div");
var subGroupFl = document.getElementById("SubGroups").getElementsByTagName("div");
for(var i=0; i<subGroupEl.length; i++){
subGroupEl[i].className = "hidden";
subGroupFl[i].className = "hidden";
}
if(document.getElementById(selectedVal))
document.getElementById(selectedVal).className = "visible";
else
console.log("No Sub Groups present for this option");
}
.hidden{display: none;}
.visible{display: block;}
Is this to be a subdomain?
<select id="sbdomain" name="sbdomain">
<option disabled selected>Please Select</option>
<option value="sbdomainSubGroup">Yes</option>
<option value="sbdomainSubGroups">No</option>
</select>
<div id="SubGroup">
<div id="sbdomainSubGroup" name="sbdomainSubGroup">
<label id="subdomain">Enter Subdomain</label>
<input type='text' class='text' name='business' size='20'/>
<br />
</div>
</div>
<div id="SubGroups">
<div id="sbdomainSubGroups" name="sbdomainSubGroups">
<label id="subdomainno">Enter Domain</label>
<input type='text' class='text' name='business2' size='20'/>
<br />
</div>
</div>
在下拉值更改时调用 JavaScript 函数。
在该函数中,检查用户选择的值。根据所选值,分别对div sbdomainSubGroup/sbdomainSubGroups 设置您的类名隐藏/可见。
希望这有帮助!!
您可以执行以下操作:
视图:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index777</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<style type="text/css">
.hidden {
display: none;
}
.visible {
display: block;
}
</style>
<script type="text/javascript">
$(function () {
window.onload = showHide;
function showHide() {
//Hide divs sbdomainSubGroup and sbdomainSubGroups after page reload if no value
//is selected from dropdown sbdomain.
if ($("#sbdomain option:selected").text() == "Please Select") {
$("#sbdomainSubGroup").addClass("hidden");
$("#sbdomainSubGroups").addClass("hidden");
}
else {
$("#sbdomainSubGroup").removeClass("hidden");
$("#sbdomainSubGroups").removeClass("hidden");
}
//Show div sbdomainSubGroup if "Yes" is selected from dropdown sbdomain when page is
//reloaded. Also to retain textfield business value.
if ($("#sbdomain option:selected").text() == "Yes") {
$("#sbdomainSubGroup").removeClass("hidden");
$("#sbdomainSubGroups").addClass("hidden");
}
//Show div sbdomainSubGroups if "No" is selected from dropdown sbdomain when page is
//reloaded. Also to retain textfield business2 value.
if ($("#sbdomain option:selected").text() == "No") {
$("#sbdomainSubGroups").removeClass("hidden");
$("#sbdomainSubGroup").addClass("hidden");
}
}
//this represents a page reload
$("#reload").click(function () {
showHide();
})
})
</script>
</head>
<body>
Is this to be a subdomain?
<select id="sbdomain" name="sbdomain">
<option selected>Please Select</option>
<option value="sbdomainSubGroup">Yes</option>
<option value="sbdomainSubGroups">No</option>
</select>
<div id="SubGroup">
<div id="sbdomainSubGroup" name="sbdomainSubGroup">
<label id="subdomain">Enter Subdomain</label>
<input type='text' class='text' name='business' size='20' />
<br />
</div>
</div>
<div id="SubGroups">
<div id="sbdomainSubGroups" name="sbdomainSubGroups">
<label id="subdomainno">Enter Domain</label>
<input type='text' class='text' name='business2' size='20' />
<br />
</div>
</div>
<input type="button" value="BtnRepresentsPageReload" id="reload" />
</body>
</html>