使用JQuery选择自动生成的WebForm控件ID

时间:2014-01-20 21:21:51

标签: c# javascript jquery asp.net webforms

ASP.NET自动生成ID而不是使用我指定的ID。我如何使用jQuery选择此值?我不相信自动生成的值总是相同的。

这是我的ASPX代码:

<asp:TextBox ID="txtZip" runat="server" CausesValidation="true" CssClass="short_width" MaxLength="10" />

以下是生成的内容:

<input name="ctl00$MainContentArea$txtZip" type="text" maxlength="10" id="ctl00_MainContentArea_txtZip" class="short_width" />

以下是我要做的事情:

<script type="text/javascript">
    jQuery(function ($) {
        $("#txtZip").mask("99999?-9999");
    });
</script>

3 个答案:

答案 0 :(得分:4)

您可以使用类选择器:

jQuery(function ($) {
    $(".short_width").mask("99999?-9999");
});

我会创建一个新类,即zipCode并将其添加到您的控件中:

<asp:TextBox ID="txtZip" runat="server" CausesValidation="true" CssClass="short_width zipCode" MaxLength="10" />

然后使用:

jQuery(function ($) {
    $(".zipCode").mask("99999?-9999");
});

这样就可以让它与其他风格分开。

答案 1 :(得分:4)

如果您的javascript位于aspx页面,则可以使用ClientId。无论如何,你必须像其他答案那样使用一个类。

<script type="text/javascript">
    jQuery(function ($) {
        $("#<%=txtZip.ClientId%>").mask("99999?-9999");
    });
</script>

答案 2 :(得分:0)

.Net 4.5在控件上有ClientIDMode属性,如果你将它设置为static,那么控件的ID不会从你赋给它的内容改变,它将保留为txtZip。