2012-04-29 55 views
8

我需要此显示从使用jquery更新其值。通过jquery更改DisplayFor文本/值

我试过.val().text()但都没有工作,有没有一种特殊的方式来做到这一点的显示器,我需要它并保持显示。

也可以不显示设置样式?我永远不可能得到这个工作,它适用于TextboxFor。

感谢您的任何提示。

Estimated Time: @Html.DisplayFor(model => model.EstimatedTime, new { @class = "TitleEstTimeClass", @style = "color: green" }) 

$(".TitleEstTimeClass").val(result[1]); 

回答

18

DisplayFor生成标签HTML标记<label id="myId" class="myClass">Some Text</label>(不正确)

编辑

我错了,还以为你在使用LabelFor帮手。 DisplayFor帮助器不输出HTML标记(如标签或跨度标签)。如果你想这与DisplayFor辅助工作,您将需要一个类似像下面<span>或东西来包装DisplayFor标签:

<span class="TitleEstTimeClass" style="color: green"> 
    @Html.DisplayFor(model => model.EstimatedTime) 
</span> 

鉴于此,请尝试使用.html() JQuery的财产像下面 - 它确实是没有比股利或跨度更新文本不同:

$(".TitleEstTimeClass").html(result[1]); 

另外,还要确保您的JQuery调用是在适当的<script></script>标签和您呼叫的功能实际上是被解雇。我不确定上面的代码是直接来自你的项目还是只是片段,但是如上所述,什么都不会发生。仅使用我如何可以调用我的模型=> model.EstimatedTime

+0

关系吗?并且有它在“一些文本” – TMan

+0

哦它没有工作,保持自己拥有了它,但是做的.html工作时,我刚刚创建了一个普通的标签,只是把一个DisplayTextFor它里面。 – TMan

+0

刚刚更新我的答案 - 请参阅有关详细信息,编辑,为什么仍然不为你工作,你为什么必须做你在最后的评论做了什么。 PS - 我会用一个span标签上的一致性标签标签(这不是一个表单字段asssociated,因而不是真正的标签) – Tommy