1

我有一个用户控件,其中有一个textbox. 我在这个文本框中使用 jQuery 自动填充。

当我在页面上多次使用此用户控件时,它不起作用。我知道它是因为重复 ID,textbox但我不知道如何解决这个问题。请帮帮我 。

这是我的用户控件

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Classes.ascx.cs" %>
<asp:TextBox ID="txtClass" placeholder="search Class" type="text" runat="server" EnableViewState="true"
    ClientIDMode="Static" Width="250px" OnTextChanged="txtClass_TextChanged"></asp:TextBox>


<script language="javascript">

    $(function () {

        $("#txtClass").autocomplete({
            source: function (request, response) {
                var oClass = $("#txtClass").val().replace('*', '');
                .
                .
                .
                .
                }
            });
        }

更新

这是html

    <input name="ctl00$BodyContent$txtClassasd$txtClass" id="txtClass" placeholder="search Class" type="text" style="width:250px;" />

<script language="javascript">

    $(function () {

        $("#txtClass").autocomplete({
            source: function (request, response) {
                var test = document.getElementById("txtClass").value;
                var oClass = $("#txtClass").val().replace('*', '');



<input name="ctl00$BodyContent$Classes1$txtClass" id="txtClass" placeholder="search Class" type="text" style="width:250px;" />
<script language="javascript">

    $(function () {

        $("#txtClass").autocomplete({
            source: function (request, response) {
                var oClass = $("#txtClass").val().replace('*', '');
4

3 回答 3

2

您需要将 ClientID 用于服务器控件

 $("#<%=txtClass.clientID%>").autocomplete(

还从 txtClass 控件中删除 ClientIDMode="Static"

于 2013-09-30T22:59:15.630 回答
0

如果您查看发送到浏览器的 html,我猜实际上并没有 ID 为“txtClass”的文本框。你应该做类似的事情$("#<%= txtClass.ClientID %>")...

于 2013-09-30T22:58:47.533 回答
0

使用 ID 数组:

如何使用 jquery 选择 ID 文本框数组

或修改您的选择器

$("input").autocomplete({...
于 2013-09-30T23:00:34.097 回答