【发布时间】:2019-10-09 11:54:39
【问题描述】:
我对这种 .Net MVC 风格还很陌生,所以希望这很容易解决。
我有一个 HTML 表格行,需要在加载页面时隐藏,然后如果选择了下拉列表 (DDL) 中的选项,则会显示该选项。此隐藏行包含另一个 MVC DDL。
如果我最初不隐藏该行,则 DDL 会正确呈现但是,如果我使用 CSS/样式来隐藏该行,或者在页面加载后使用 JQuery 隐藏该行,则 DDL 会呈现为一个完全空的列表几乎没有标准动作。
<tr id="ifNotChosen">
<td>Why not chosen?</td>
<td>
@Html.DropDownListFor(x => x.NotChosenReason, Model.NotChosenReasons,
new { @class = "chosen-select-deselect", data_placeholder = "Select Not Chosen Reason", style = "width:200px;" })
</td>
</tr>
文件末尾是一个包含所有操作的脚本,包括“隐藏”操作。由于脚本位于文件的末尾,我希望它在渲染 DOM 元素之后运行,因此它不会影响它的外观。显然,这个假设是不正确的。
<script>
...
$("#ifNotChosen").hide();
...
</script>
正如我所说,如果该行最初没有隐藏,它会正确呈现,所有选项都可用并且data_placeholder 可见。下图显示了确定第二个 DDL 是否可见的 DDL。这显示了最初隐藏该行,然后在第一个 DDL 中选择正确选项后使其可见的结果。无法选择任何选项,因为这也不再像正常的 DDL。
仅供参考,到目前为止我所做的所有研究都只告诉我如何隐藏或显示 DDL,但并没有解决这个奇怪的问题。
那么,我的问题是:如何让这个 DDL 列表正常工作?
编辑:
这是工作表单的一个新领域。 JQuery 包含在页面顶部,页面上的其他 JQuery 工作正常。
编辑 2:
在测试了@Vicky Khichar 的答案后,选项被正确填充。
另外,在昨晚的测试中,我发现使用$(document).ready 并没有任何区别。
这似乎是 100% 的 DOM 问题。
【问题讨论】:
标签: c# jquery .net model-view-controller