我有一个用户控件,其中有一个textbox
。我在这个文本框中使用jQuery自动填充。
当我多次在页面上使用此用户控件时,它不起作用。我知道它是因为textbox
的重复ID,但我没有得到如何解决这个问题。请帮帮我。
这是我的UserContol
<%@ 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('*', '');
答案 0 :(得分:2)
您需要将ClientID用于服务器控件
$("#<%=txtClass.clientID%>").autocomplete(
还从txtClass控件中删除ClientIDMode =“Static”
答案 1 :(得分:0)
如果你看一下发给浏览器的html,我猜测实际上没有一个ID为'txtClass'的文本框。你应该做$("#<%= txtClass.ClientID %>")...
答案 2 :(得分:0)