在不改变元素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()
除了将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>