0

为什么当我用 javascript 分配 HiddenField 控件的新值时,当我用 "<%= this.HiddenField.Value %>" 调用它时,在这种情况下 HiddenField 控件的值保持相同的状态 (5)?但是当我用“console.log(document.getElementById('<%= this.HiddenField.ClientID %>').value);”调用它时 在这种情况下,这会返回 chagned 状态“活动”,为什么?如何在后面的代码中获取更改的值(我希望“<%= this.HiddenField.Value %>”返回“活动”(更改的值))?

<script>
    $(function () {
        document.getElementById('<%= this.HiddenField.ClientID %>').value = "active";
        console.log(document.getElementById('<%= this.HiddenField.ClientID %>').value); // this return te changed value "active"
        console.log('<%= this.HiddenField.Value %>') //this again is 5 not "active"
    });
</script>
<asp:HiddenField ID="HiddenField" runat="server" Value="5" />
4

1 回答 1

0

asp.net 是一种服务器端语言。当你使用 "<%=" 时,它会像 response.write 一样对你的 html 文档做同样的事情。您正在通过客户端浏览器中的 jQuery 在运行时更改值,这显然发生在您已经将值写入 Log 函数之后。

只需查看生成的脚本,就应该立即清楚为什么会得到这些结果。

于 2013-02-20T11:10:32.300 回答