有没有办法使用jquery更改asp:textbox占位符的文本? 我试图使用:
$('#textbox1').attr("placeholder", "enter some text");
但没有任何反应 下面是我的asp文本框:
<asp:TextBox ID="textbox1" placeholder="Text" runat="server" ></asp:TextBox>
答案 0 :(得分:1)
您需要向jQuery添加一些元素,以便找到您要查找的文本框:
$("#<%=textbox1.ClientID %>").attr("placeholder", "enter some text");
由于您使用的是'asp:TextBox',因此在编辑网页时,.Net会为其ID添加值,导致文本框的ID不再等于'textbox1'。通过使用<%=textbox1.ClientID %>
,您可以搜索在代码中命名文本框的原始ID。
例如: 在我的一个网页中,我有这个文本框:
<asp:TextBox runat="server" ID="nameTextBox" CssClass="form-control"></asp:TextBox>
当我运行我的网页并查看html代码的编译版本时,其ID现在是这样的:
id="ctl00_Content_propertiesDXCallbackPanel_nameTextBox"
正如您所看到的.Net已将数据添加到文本框的ID中以允许其使用它,希望这会有所帮助。
答案 1 :(得分:0)
在我看来,实际发生的事情是$('#textbox1')
实际上不会返回任何元素。这是因为jQuery将查找具有确切ID textbox1
的元素,并且默认情况下ASP.NET会为元素生成动态ID。
因此<asp:TextBox ID="textbox1" ... />
实际上会像<input id="ctl00_someOtherDynamicStuff_textbox1" type="text"/>
(请注意ID)那样呈现出来。
一种解决方案是为TextBox提供一个类,您可以通过以下方式选择它:<asp:TextBox ID="textbox1" CssClass="someClassName" runat="server"/>
然后在你的JS中使用它:
$('.someClassName').attr("placeholder", "enter some text");