在不更改元素id的情况下更改input元素的值

时间:2014-07-21 15:38:42

标签: c# asp.net

我有一个带有输入元素的ASPX页面。在页面加载时,我设置该输入元素的值。稍后我尝试使用元素id(使用javascript)获取该字段的内容,但它失败,因为id已被更改。有没有办法阻止C#更改元素ID?

输入元素:

<input id="conferenceDate" runat="server" style="width:100%;" />

Page_Load功能中设置日期:

conferenceDate.Value = DateTime.Now.ToString();

元素值之后的ID已设置:

<input name="ctl00$PlaceHolderMain$conferenceDate" type="text" id="ctl00_PlaceHolderMain_conferenceDate"     style="width:100%;" value="7/21/2014 11:30:55 AM" />

更新:我已尝试过以下操作,但两项工作仍未更改ID:

<asp:TextBox ID="conferenceDate" runat="server" ClientIDMode="Static" />

和     

当我稍后尝试使用jQuery选择它们时,我必须使用更改后的id:

$("ctl00_PlaceHolderMain_conferenceDate").val()

4 个答案:

答案 0 :(得分:3)

除了将ClientIDMode设置为static之外,您还可以使用ClientID属性找到id

<%= conferenceDate.ClientID %>

使用您的样本信息,您可以这样找到:

单引号或双引号,不要忘记哈希标记(如果它是一个类,则为点)。

$("#<%= conferenceDate.ClientID %>").val()

答案 1 :(得分:1)

您可以将ClientIDMode设置为Static

这将阻止控件ID在运行时更改。

E.g:

<asp:TextBox ID="conferenceDate" runat="server" ClientIDMode="Static" />

答案 2 :(得分:1)

尝试将文本框的ClientIDMode设置为“静态”(更多信息:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode(v=vs.110).aspx):

<input id="conferenceDate" runat="server" ClientIDMode="Static" style="width:100%;" />

答案 3 :(得分:0)

为什么不使用asp:textbox并将ClientIDMode设置为静态?

<asp:TextBox ID="conferenceDate" runat="server" ClientIDMode="Static"></asp:TextBox>