使用javascript为EditorFor赋值

时间:2013-04-08 18:33:33

标签: 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”。但最后一行不起作用!为什么呢?

1 个答案:

答案 0 :(得分:2)

EditorFor不接受htmlAttributes作为参数(这是我认为您所期待的);这将是TextBoxFor

您正在做的是将additionalViewData传递给编辑器模板,因此,除非您在EditorTemplate中使用它,否则您实际上不会为该元素分配ID(因此无法检索它与JS)。

如果您想为文本字段指定ID,请自定义编辑器模板,或使用TextBoxFor代替

@Html.TextBoxfor(x => x.StageId, new { id = "hiddenStageID" })

除非我错了(我可能是因为我没有在我面前看到模板。你可能已经定制了它,在这种情况下我只是做了一个不准确的假设我可以更新我的答案)。