从jquery访问内容页面元素

时间:2011-10-12 02:45:18

标签: jquery asp.net master-pages content-pages

我正在尝试从jquery访问文本框和隐藏字段的值。我的价值是未定义的。

这些控件位于我的母版页的内容页面内。

 <input id="datepickerContact" type="text" runat="server" />
<input type="hidden" runat="server" id="IAssignmentId" clientidmode="Static" />

在javascript函数中:

 var Insid = $("#datepickerContact");
    var firstcontactDate = $("#IAssignmentId");
    alert(Insid.val());
    alert(firstcontactDate.val());

提前致谢

BB

3 个答案:

答案 0 :(得分:2)

$(document).ready(function() {
    var Insid = $("#<%= datepickerContact.ClientID %>");
    var firstcontactDate = $("#IAssignmentId");
    alert(Insid.val());
    alert(firstcontactDate.val());
});

答案 1 :(得分:2)

您尚未提及datepickerContact datepickerContact控件。默认情况下,模式可以是可预测的(如果是迁移的站点,则为AutoID),它将使用父命名容器的连接生成html端ID,如果是内容页,则该命名容器将是内容占位符。

简而言之,<input id="datepickerContact" type="text" runat="server" ClientIDMode="Static" /> 文本框的html id属性类似于“content1_datepickerContact”,因此jquery选择器找不到html控件。

简单的解决方案是将ClientIDMode用作静态。例如,

{{1}}

另一种方法是将通过ClientIDMode属性获得的实际客户端ID(无论客户端ID模式)传递给您的java脚本函数。如果您的功能是在标记(aspx)上定义的,那么您可以使用服务器端指令在脚本中嵌入客户端ID,如rick schott所示。如果您的函数位于外部js中,那么您必须将客户端ID作为参数传递。

答案 2 :(得分:0)

你可以通过写这个

来访问

var insid = $(“#&lt;%= datepickerContact.ClientID%&gt;”)。val();
警报(insid);