단일 드롭 다운 목록이있는 간단한 MVC 5 페이지가 있습니다. 이 드롭 다운 목록에서 선택한 항목을 기반으로 페이지의 세 div 중 하나에 대한 표시 여부를 설정할 수 있습니다. 내가 겪고있는 문제는 각 div가 볼 수없는 경우에도 페이지에서 공간을 차지한다는 것입니다. 따라서 두 번째 div가 표시되도록 드롭 다운 목록에서 항목을 선택하면 해당 내용이 페이지에서 아래로 이동 한 것을 볼 수 있습니다.공간을 차지하지 않고 CSS를 사용하여 숨겨진 DIV를 포함하려면 어떻게해야합니까?
다음은 컨트롤러에서 드롭 다운 목록의 데이터를 만드는 코드입니다. 여기
public ActionResult Index()
{
var searchBy = new List<SearchBy>
{
new SearchBy { Name = "Email Address", Value = "EmailAddress" },
new SearchBy { Name = "Last name, First name", Value = "Name" },
new SearchBy { Name = "Username", Value = "Username" }
};
ViewBag.SearchByOptions = new SelectList(searchBy, "Value", "Name");
return View();
}
내가 같은 페이지에 같은 "부동산"을 취하도록 div의 모든 얻기 위해 필요한 것을 트릭 확실하지 오전 Index.cshtml
@{
<script type="text/javascript">
$(document).ready(function() {
// Make all three <div>s hidden when the page loads...
document.getElementById("searchByEmail").style.visibility = "hidden";
document.getElementById("searchByName").style.visibility = "hidden";
document.getElementById("searchByUsername").style.visibility = "hidden";
});
function searchBy(selectedItem) {
if (selectedItem == "EmailAddress") {
// Make visible
document.getElementById("searchByEmail").style.visibility = "visible";
// Make in-visible
document.getElementById("searchByName").style.visibility = "hidden";
document.getElementById("searchByUsername").style.visibility = "hidden";
}
if (selectedItem == "Name") {
// Make visible
document.getElementById("searchByName").style.visibility = "visible";
// Make in-visible
document.getElementById("searchByEmail").style.visibility = "hidden";
document.getElementById("searchByUsername").style.visibility = "hidden";
}
if (selectedItem == "Username") {
// Make visible
document.getElementById("searchByUsername").style.visibility = "visible";
// Make in-visible
document.getElementById("searchByEmail").style.visibility = "hidden";
document.getElementById("searchByName").style.visibility = "hidden";
}
};
</script>
}
<h2>Index</h2>
<div>
Search for existing users by: @Html.DropDownList("SelectedItem", (SelectList)ViewBag.SearchByOptions, "-- Select One --", new { onchange = "searchBy($('#SelectedItem').val());" })
</div>
<div id="searchByEmail">
Emails...
</div>
<div id="searchByName">
Names...
</div>
<div id="searchByUsername">
Usernames...
</div>
}
내 마크 업입니다 I 한 번에 하나씩 만 보여줄 것입니다. 또한,
@{
<script type="text/javascript">
$(document).ready(function() {
$("#searchByEmail").hide();
$("#searchByName").hide();
$("#searchByUsername").hide();
});
function searchBy(selectedItem) {
if (selectedItem == "EmailAddress") {
$("#searchByEmail").show();
$("#searchByName").hide();
$("#searchByUsername").hide();
}
if (selectedItem == "Name") {
$("#searchByName").show();
$("#searchByEmail").hide();
$("#searchByUsername").hide();
}
if (selectedItem == "Username") {
$("#searchByUsername").show();
$("#searchByEmail").hide();
$("#searchByName").hide();
}
};
</script>
}
<h2>Index</h2>
<div>
Search for existing users by: @Html.DropDownList("SelectedItem", (SelectList)ViewBag.SearchByOptions, "-- Select One --", new { onchange = "searchBy($('#SelectedItem').val());" })
</div>
를 CSS 규칙의 차이점이 무엇인지 확인하십시오 :
GRSEV에게 감사의 말씀을 전합니다. 빠른 답변! :-) 나는 그것이 나를 허용 할 때 몇 분 안에 답을 표시 할 것이다. – user2146538