我正试图从隐藏字段中获取值,但我收到了一个未定义的警报。我究竟做错了什么?
// Masterpage
...
<body>
<div class="container">
<asp:ContentPlaceHolder ID="MasterContent" runat="server"></asp:ContentPlaceHolder>
</div>
<script>
$(document).ready(function () {
alert($('#hiddenPersonId').val());
});
</script>
</body>
// Default.aspx
<asp:Content ID="Content" ContentPlaceHolderID="MasterContent" runat="Server">
<asp:HiddenField ID="hiddenPersonId" runat="server" Value="1" />
</asp:Content>
我尝试了其他解决方案,但这些也无效:
alert($("#<%= hiddenPersonId.ClientID %>").val());
答案 0 :(得分:2)
它不适用于母版页。您需要从Default.aspx调用它或尝试
$('[id*="hiddenPersonId"]')
主页上的,但使用此母版页的其他页面不应包含其ID中包含hiddenPersonId
的任何控件
答案 1 :(得分:2)
如果你是.net 4+,你可以尝试将ClientIDMode设置为静态。您将要检查它是否已首先定义。如果你想/需要js在母版页上。
<script type="text/javascript">
$().ready(function () {
alert($('#hdnPersonId').val());
});
</script>
<asp:HiddenField ID="hdnPersonId" Value="1" runat="server" ClientIDMode="Static" />