0

我之前曾多次问过同样的基本问题,但没有得到回应,但让我再试一次,尽可能简单地分解它。

  1. 我有一个强类型视图,上面有一个隐藏字段。
  2. 当视图呈现服务器端时,我将隐藏字段的值设置为模型的属性。
  3. 当视图呈现客户端时,我想获取隐藏字段的值(在服务器端呈现期间设置)并将其显示在 java 脚本警报框中。

这应该是一件简单的事情,但我无法使其工作。我在视图中设置了一个断点,我可以看到隐藏字段被设置为正确的值。但是 javascript 不会显示该值。

正在呈现的页面/视图之前已转到。在我想显示此警报时,我将返回该页面,现在我想查看警报。

就好像页面正在被缓存,所以不是使用隐藏字段的新值,而是使用旧值(从第一次访问页面开始)。如果正在缓存 DOM,我如何防止这种情况发生,以便每次访问页面时我都会获得页面的更新值而不是缓存的值?我究竟做错了什么??

@<input type="hidden" id="hdnShowMsg" value="@Model.ShowMsg" />

<script>
alert($('#hdnShowMsg').val());
</script>
4

1 回答 1

3

您的脚本可能会在您的文档完全呈现之前触发。使用 jQuerydocument ready函数。

http://api.jquery.com/ready/

<script>
$(function() {
    alert($('#hdnShowMsg').val());
});
</script>

另请注意,document readyjQuery Mobile 文档中不支持该功能,并且您可能会遇到问题,具体取决于您尝试操作的 DOM 的哪一部分。

改为使用$(document).bind("pageinit", function() {})

http://jquerymobile.com/demos/1.2.1/docs/api/events.html

于 2013-04-15T20:06:20.967 回答