我在asp.net项目的主页中有这段代码
<div style="display:none">
<input id="txtPageIDMaster" name="txtPageIDMaster" type="text" value="0" runat="server"/>
<input id="txtOnLineUserMaster" type="text" value="0" runat="server"/>
</div>
并在脚本标记中:
alert($("#txtPageIDMaster").val())
但请告诉我这个警告:未定义
答案 0 :(得分:2)
这应该有效:
alert($("<%= txtPageIDMaster.ClientID %>").val())
为什么呢?因为asp.net为控件设置了自己的id。因此ClientID属性为您提供生成的ID。
从ASP.NET 4开始,这基于ClientIDMode属性。这可以是四个值:
ClientIDMode.Inherit
ClientIDMode.AutoID
(这是默认值以及它一直是.NET4之前的版本)ClientIDMode.Preditable
ClientIDMode.Static
(这是将html ID设置为asp.net ID属性时)Asp.net MVC不会这样做。您可以完全控制您的HTML,并且您的ID永远不会自动生成。
答案 1 :(得分:0)
试试这个
alert(document.getElementById('txtPageIDMaster').value);
答案 2 :(得分:0)
从jQuery的角度来看:
的javascript:
$(function(){
alert($("#txtPageIDMaster").val());//adapted for ASP.net as per gideon's suggestion, I expect
};)
答案 3 :(得分:0)
如前所述,runat = server控件将被视为服务器端控件,因此在javascript中找到它时需要指定controlname.clientID,因此需要在javascript中提及如下
alert(document.getElementById('<%= txtPageIDMaster.ClientID %>').value);