在不改变元素id的情况下改变输入元素的值

本文关键字:元素 改变 输入 情况下 id | 更新日期: 2023-09-27 18:14:10

我有一个带有输入元素的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" />

UPDATE:我已经尝试了以下操作,但都没有工作,id仍然改变:

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

当我试图选择他们以后用jQuery我必须使用更改id:

$("ctl00_PlaceHolderMain_conferenceDate").val()

在不改变元素id的情况下改变输入元素的值

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

<%= conferenceDate.ClientID %>

使用您的示例信息,您可以像这样找到它:

单引号或双引号,并且不要忘记使用hash标记(如果是类,则使用点)。

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

尝试将文本框的ClientIDMode设置为"Static"(更多信息: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%;" />

可以设置ClientIDMode为Static

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

例句:

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

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

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