javascript - 使用 javascript 为 EditorFor 赋值

标签 javascript editorfor

我认为有这段代码:

    <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/

相关文章:

javascript - 使用 Aurelia 进行 Firebase 角色授权

javascript - 使用WebAudio API,如何在浏览时添加短交叉淡入淡出以避免音频 "popping"

asp.net-mvc-4 - 预加载并禁用 EditorFor

asp.net - 单选按钮而不是 mvc 3 应用程序中的下拉列表?

asp.net - 在 ASP.NET MVC 中将集合传递给 EditorFor

javascript - Google map v3 性能问题

javascript - 防止大型菜单项在悬停时自动隐藏

model-view-controller - 为列表选择备用 EditorFor 模板

javascript - 谷歌地理图表 map : tooltip without region name

asp.net-mvc - MVC EditorFor 在另一个 EditorFor 中