我的問題與show divs based on drop down selection中的問題類似。我有一個下拉列表中有四個選項的div。根據選擇哪一個,我希望其他兩個控件中的一個顯示在下一個div中,並且在一種情況下,它將顯示EditorFor
,我希望填充該值。這是我有...使用jQuery在MVC中基於ddl選擇隱藏或顯示錶單控件
<div class="form-group">
@Html.Label("OriginType", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-4">
@Html.DropDownList("OriginType", ViewData["OriginType"] as SelectList, new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
<div class="form-group" id="pnlOrigin">
@Html.LabelFor(model => model.Origin, htmlAttributes: new { @class = "control-label col-md-2" })
<div id="pnlOrigin1"class="col-md-4">
@Html.DropDownList("ddlORDER_10", (IEnumerable<SelectListItem>)ViewBag.Order, "Select an Order Number", new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Origin, "", new { @class = "text-danger" })
</div>
<div id="pnlOrigin2"class="col-md-4">
@Html.EditorFor(model => model.Origin, new { htmlAttributes = new { @class = "form-control", @id = "tbOrigin" } })
@Html.ValidationMessageFor(model => model.Origin, "", new { @class = "text-danger" })
</div>
</div>
所以我需要什麼,當用戶從下拉OriginType
選擇是(STK,PO,WO,其他),它會顯示或隱藏pnlOrigin
格的下拉列表或EditorFor
。如果選擇了PO
或WO
,它將顯示ddl。如果選擇了OTHER
或STK
,則它將顯示EditorFor
,對於STK,它將用STK
預填充編輯器。
我試圖修改引用的帖子中的功能,但它不是最初隱藏控件,並從OriginType
下拉列表中選擇沒有任何影響?
這是我創建的jQuery。我不確定我要去哪裏錯。
$(document).ready(function() {
function ShowOptions(originType) {
if (OriginType == "0"){
$("#pnlOrigin").hide();
$("#pnlOrigin1").hide();
$("#pnlOrigin2").hide();
// hide all before show
var showOriginPanel = false;
}
if (OriginType == 'STK') {
$("#pnlOrigin").show();
$("#tbOrigin").val('STK');
showOriginPanel = true;
}
if (OriginType == 'PO') {
$("#pnlOrigin1").show();
showOriginPanel = true;
}
if (OriginType == 'WO') {
$("#pnlOrigin1").show();
showOriginPanel = true;
}
if (OriginType == 'OTHER'){
$("#pnlOrigin2").show();
showOriginPanel = true;
}
if(showOriginPanel) {
$("#pnlOrigin").show();
}
}
ShowOptions($("#OriginType").val());
$("#OriginType").change(function() {
ShowOptions($(this).val());
});
});
任何幫助將不勝感激!
您是否考慮過使用部分視圖來完成此操作?它可能會大大簡化您的過程。你的主視圖會有最初的下拉菜單和一些空的「div」。一旦選擇完成,您可以通過ajax將值發送給您的控制器,並將部分視圖返回到包含正確下拉列表的空白'div'。 – rogerdeuce