我认为有这段代码:
<div class="drop-down-list">
<%: Html.EditorFor(model => model.StageId,new { id="hiddenStageID"}) %>
<%: Html.ValidationMessageFor(model => model.StageId) %>
</div>
这是我设置 EditorFor 值的 javascript 代码。但它不起作用:
<script>
var e = document.getElementById("stageTwoView");
var listIndex = e.selectedIndex;
var stageIdVal = list[listIndex].valueOf();
document.getElementById('hiddenStageID').value = stageIdVal;
</script>
例如 stageIdVal 获取此值:“1003”。但最后一行不起作用!为什么?
最佳答案
EditorFor
不接受 htmlAttributes
作为参数(我认为这是你所期望的);那将是 TextBoxFor
。
您所做的是将 additionalViewData
传递给编辑器模板,因此除非您在 EditorTemplate 中使用它,否则您实际上不会为该元素分配 ID(因此可以不要用 JS 检索它)。
如果您想为文本字段提供 ID,请自定义编辑器模板,或使用 TextBoxFor
来代替,以便您可以向其传递其他属性:
@Html.TextBoxfor(x => x.StageId, new { id = "hiddenStageID" })
除非我错了(这可能是因为我面前没有可见的模板。您可能已经自定义了它,在这种情况下,我只是做出了不准确的假设,我可以更新我的答案)。
关于javascript - 使用 javascript 为 EditorFor 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15886392/